Cara Memuat Dokumen di Go
Aspose.PDF FOSS untuk Go memuat PDF dari jalur file, io.Reader, atau sumber mana pun yang dilindungi kata sandi, selalu mengembalikan nilai *Document untuk dioperasikan. Perpustakaan ini adalah modul Go yang diinstal dengan go get.
Panduan Langkah demi Langkah
Langkah 1: Instal Paket
Tambahkan modul ke proyek Anda:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goVerifikasi modul terresolusi:
import asposepdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"Langkah 2: Impor Kelas yang Diperlukan
import (
pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)Langkah 3: Muat PDF dari Jalur File
pdf.Open memuat file PDF dan mengembalikan *Document serta sebuah kesalahan:
doc, err := pdf.Open("testdata/4pages.pdf")
if err != nil {
panic(err)
}
fmt.Println(doc.PageCount(), "pages")Langkah 4: Muat PDF yang Dilindungi Kata Sandi
pdf.OpenWithPassword membuka file yang dienkripsi dengan kata sandi pengguna:
doc, err := pdf.OpenWithPassword("locked.pdf", "secret")
if err != nil {
panic(err)
}
fmt.Println("opened:", doc.PageCount(), "pages")Langkah 5: Muat PDF dari Stream
pdf.OpenStream membaca PDF dari io.Reader apa pun — respons jaringan, buffer dalam memori, atau file yang dibuka secara terpisah. pdf.OpenStreamWithPassword adalah setara yang dilindungi kata sandi untuk stream:
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)")Langkah 6: Periksa Dokumen yang Dimuat
Seteleh dimuat, Document.PageCount melaporkan total jumlah halaman dan Document.Page(n) mengambil satu halaman berdasarkan indeks berbasis-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)Masalah Umum dan Perbaikan
OpenWithPassword masih gagal setelah saya memasukkan apa yang saya yakini sebagai kata sandi yang benar
Memberikan kata sandi yang salah ke OpenWithPassword menghasilkan kesalahan non-nil. Kata sandi bersifat peka huruf besar/kecil — pastikan kata sandi pengguna yang tepat yang diatur pada PDF sumber.
OpenStream mengembalikan kesalahan pada PDF terenkripsi
OpenStream tidak dapat membuka PDF terenkripsi. Gunakan OpenStreamWithPassword untuk aliran yang dilindungi kata sandi sebagai gantinya.
Apakah saya perlu OpenWithPassword untuk PDF yang ternyata tidak terenkripsi?
Tidak — membuka file yang tidak terenkripsi melalui OpenWithPassword diizinkan dan berperilaku sama seperti panggilan Open biasa, jadi aman menggunakan OpenWithPassword ketika Anda tidak yakin file tersebut terenkripsi.
Document.Page(n) mengembalikan kesalahan setelah berhasil Open
Nomor halaman berada di luar jangkauan. Page menggunakan indeks berbasis 1 antara 1 dan Document.PageCount(); panggil PageCount() terlebih dahulu untuk memvalidasi jangkauan.
Pertanyaan yang Sering Diajukan
Format file apa yang dapat saya muat dengan Open?
Open, OpenWithPassword, OpenStream, dan OpenStreamWithPassword semuanya hanya menerima input PDF.
Bagaimana cara memuat PDF yang sudah berada di memori daripada di disk?
Bungkus irisan byte dalam bytes.Reader (yang memenuhi io.Reader) dan berikan ke pdf.OpenStream, atau pdf.OpenStreamWithPassword jika byte tersebut mewakili PDF yang terenkripsi.
Bagaimana cara memuat PDF yang dilindungi kata sandi?
Panggil pdf.OpenWithPassword(path, password) untuk jalur file, atau pdf.OpenStreamWithPassword(r, password) untuk aliran.
Bagaimana cara memeriksa berapa banyak halaman yang dimuat?
Panggil Document.PageCount() pada *Document yang dikembalikan.