Як завантажити документ у Go
Aspose.PDF FOSS for Go завантажує PDF з шляху до файлу, io.Reader, або будь-якого з цих джерел, захищеного паролем, завжди повертаючи значення *Document для подальшої роботи. Бібліотека — це модуль Go, встановлюваний за допомогою go get.
Покроковий посібник
Крок 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 читає PDF з будь-якого io.Reader — мережевої відповіді, буфера в пам’яті або окремо відкритого файлу. 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, який виявився незашифрованим?
Ні — відкриття незашифрованого файлу через OpenWithPassword дозволено і поводиться так само, як простий виклик Open, тому безпечно використовувати OpenWithPassword, коли ви не впевнені, що файл зашифрований.
Document.Page(n) повертає помилку після успішного Open
Номер сторінки поза діапазоном. Page використовує індекс, починаючи з 1, у межах від 1 до Document.PageCount(); спочатку викличте PageCount(), щоб перевірити діапазон.
Поширені запитання
Які формати файлів я можу завантажити за допомогою Open?
Open, OpenWithPassword, OpenStream та OpenStreamWithPassword приймають лише PDF-вхід.
Як завантажити PDF, який вже знаходиться у пам’яті, а не на диску?
Обгорніть зріз байтів у bytes.Reader (який задовольняє io.Reader) і передайте його до pdf.OpenStream, або до pdf.OpenStreamWithPassword, якщо байти представляють зашифрований PDF.
Як завантажити PDF, захищений паролем?
Викличте pdf.OpenWithPassword(path, password) для шляху до файлу, або pdf.OpenStreamWithPassword(r, password) для потоку.
Як перевірити, скільки сторінок було завантажено?
Викличте Document.PageCount() на поверненому *Document.