Cara Memuat Dokumen di Go

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-go

Verifikasi 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.

Lihat Juga

 Bahasa Indonesia