Jak załadować dokument w Go

Jak załadować dokument w Go

Aspose.PDF FOSS dla Go ładuje plik PDF z ścieżki pliku, io.Reader, lub dowolnego źródła chronionego hasłem, zawsze zwracając wartość *Document, na której można operować. Biblioteka jest modułem Go instalowanym za pomocą go get.

Przewodnik krok po kroku

Krok 1: Zainstaluj pakiet

Dodaj moduł do swojego projektu:

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

Zweryfikuj, że moduł się rozwiązuje:

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

Krok 2: Importuj wymagane klasy

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

Krok 3: Załaduj PDF z ścieżki pliku

pdf.Open ładuje plik PDF i zwraca *Document oraz błąd:

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

Krok 4: Załaduj PDF zabezpieczony hasłem

pdf.OpenWithPassword otwiera plik, który jest zaszyfrowany hasłem użytkownika:

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

Krok 5: Załaduj PDF ze strumienia

pdf.OpenStream odczytuje PDF z dowolnego io.Reader — odpowiedzi sieciowej, bufora w pamięci lub pliku otwartego osobno. pdf.OpenStreamWithPassword jest równoważnym wariantem zabezpieczonym hasłem dla strumieni:

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)")

Krok 6: Zbadaj załadowany dokument

Po załadowaniu, Document.PageCount raportuje całkowitą liczbę stron, a Document.Page(n) pobiera pojedynczą stronę według jej indeksu zaczynającego się od 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)

Typowe problemy i rozwiązania

OpenWithPassword wciąż nie działa po wprowadzeniu tego, co uważam za prawidłowe hasło

Podanie nieprawidłowego hasła do OpenWithPassword skutkuje nie-pustym błędem (non-nil error). Hasła są rozróżniane pod względem wielkości liter — potwierdź dokładne hasło użytkownika ustawione w źródłowym pliku PDF.

OpenStream zwraca błąd przy zaszyfrowanym pliku PDF

OpenStream nie może otworzyć zaszyfrowanych plików PDF. Zamiast tego użyj OpenStreamWithPassword dla strumieni chronionych hasłem.

Czy potrzebuję OpenWithPassword dla pliku PDF, który okazuje się nie być zaszyfrowany?

Nie — otwieranie niezaszyfrowanego pliku za pomocą OpenWithPassword jest dozwolone i zachowuje się tak samo jak zwykłe wywołanie Open, więc bezpieczne jest użycie OpenWithPassword, gdy nie masz pewności, czy plik jest zaszyfrowany.

Document.Page(n) zwraca błąd po pomyślnym Open

Numer strony jest poza zakresem. Page używa indeksu zaczynającego się od 1, w przedziale od 1 do Document.PageCount(); najpierw wywołaj PageCount(), aby zweryfikować zakres.


Najczęściej zadawane pytania

Jakie formaty plików mogę wczytać za pomocą Open?

Open, OpenWithPassword, OpenStream i OpenStreamWithPassword przyjmują wyłącznie wejście w formacie PDF.

Jak wczytać PDF, który już znajduje się w pamięci, zamiast na dysku?

Opakuj wycinek bajtów w bytes.Reader (który spełnia io.Reader) i przekaż go do pdf.OpenStream, lub pdf.OpenStreamWithPassword, jeśli bajty reprezentują zaszyfrowany PDF.

Jak załadować PDF chroniony hasłem?

Wywołaj pdf.OpenWithPassword(path, password) dla ścieżki pliku, lub pdf.OpenStreamWithPassword(r, password) dla strumienia.

Jak sprawdzić, ile stron zostało załadowanych?

Wywołaj Document.PageCount() na zwróconym *Document.

Zobacz także

 Polski