Goでドキュメントをロードする方法

Goでドキュメントをロードする方法

Aspose.PDF FOSS for Go は、ファイルパス、io.Reader、またはパスワードで保護されたいずれかのソースから PDF を読み込み、常に操作できる *Document 値を返します。このライブラリは go get でインストールされる Go モジュールです。

ステップバイステップ ガイド

ステップ 1: パッケージをインストール

プロジェクトにモジュールを追加します:

go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go

モジュールが解決されることを確認します:

import asposepdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"

ステップ 2: 必要なクラスをインポート

import (
	pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)

ステップ 3: ファイル パスから PDF を読み込む

pdf.Open は PDF ファイルをロードし、*Document とエラーを返します:

doc, err := pdf.Open("testdata/4pages.pdf")
if err != nil {
	panic(err)
}
fmt.Println(doc.PageCount(), "pages")

ステップ 4: パスワードで保護された PDF をロード

pdf.OpenWithPassword はユーザーパスワードで暗号化されたファイルを開きます:

doc, err := pdf.OpenWithPassword("locked.pdf", "secret")
if err != nil {
	panic(err)
}
fmt.Println("opened:", doc.PageCount(), "pages")

ステップ 5: ストリームから PDF を読み込む

pdf.OpenStream は任意の io.Reader から PDF を読み取ります — ネットワーク応答、インメモリバッファ、または別途開いたファイルです。pdf.OpenStreamWithPassword はストリーム用のパスワード保護版です:

f, err := os.Open("input.pdf")
if err != nil {
	panic(err)
}
defer f.Close()

doc, err := pdf.OpenStream(f)
if err != nil {
	panic(err)
}
fmt.Println(doc.PageCount(), "pages")

// For an encrypted stream, open a separate reader and pass a password:
f2, _ := os.Open("locked.pdf")
defer f2.Close()
doc2, err := pdf.OpenStreamWithPassword(f2, "secret")
if err != nil {
	panic(err)
}
fmt.Println(doc2.PageCount(), "pages (encrypted)")

ステップ 6: 読み込んだドキュメントを検査

ロードが完了すると、Document.PageCount は総ページ数を報告し、Document.Page(n) は1ベースのインデックスで単一ページを取得します:

doc, err := pdf.Open("testdata/4pages.pdf")
if err != nil {
	panic(err)
}
fmt.Printf("Page count: %d\n", doc.PageCount())

page, err := doc.Page(1)
if err != nil {
	panic(err)
}
size, err := page.Size()
if err != nil {
	panic(err)
}
fmt.Printf("Page 1 size: %.0f x %.0f pt\n", size.Width, size.Height)

一般的な問題と対策

OpenWithPassword 正しいと思われるパスワードを入力しても、まだ失敗します

誤ったパスワードを OpenWithPassword に提供すると、nil でないエラーが返されます。パスワードは大文字小文字を区別します — ソース PDF に設定されている正確なユーザーパスワードを確認してください。

OpenStream 暗号化されたPDFでエラーが返されます

OpenStream は暗号化された PDF を開けません。代わりにパスワード保護されたストリームには OpenStreamWithPassword を使用してください。

必要ですか OpenWithPassword 暗号化されていないことが判明したPDFに対して?

No — OpenWithPassword を通して暗号化されていないファイルを開くことは許可されており、プレーンな Open 呼び出しと同じ動作をします。そのため、ファイルが暗号化されているか確信が持てないときは OpenWithPassword を使用しても安全です。

Document.Page(n) 成功した後にエラーが返されます Open

ページ番号が範囲外です。Page は 1 から Document.PageCount() までの 1 ベースのインデックスを使用します。範囲を検証するには、まず PageCount() を呼び出してください。


よくある質問

Openでロードできるファイル形式は何ですか?

Open、OpenWithPassword、OpenStream、および OpenStreamWithPassword はすべて PDF 入力のみを受け付けます。

ディスク上ではなく、メモリ上にすでにある PDF をどのようにロードしますか?

バイトスライスを bytes.Reader でラップし(io.Reader を満たします)、それを pdf.OpenStream に渡します。バイトが暗号化された PDF を表す場合は pdf.OpenStreamWithPassword を使用してください。

パスワードで保護された PDF をロードするにはどうすればよいですか?

ファイルパスの場合は pdf.OpenWithPassword(path, password) を呼び出し、ストリームの場合は pdf.OpenStreamWithPassword(r, password) を呼び出します。

ロードされたページ数を確認するにはどうすればよいですか?

返された *Document に対して Document.PageCount() を呼び出します。

参照

 日本語