Cum să încarci un document în Go

Cum să încarci un document în Go

Aspose.PDF FOSS for Go încarcă un PDF dintr-o cale de fișier, un io.Reader, sau oricare dintre sursele protejate prin parolă, întotdeauna returnând o valoare *Document pentru a lucra cu ea. Biblioteca este un modul Go instalat cu go get.

Ghid pas cu pas

Pasul 1: Instalează pachetul

Adaugă modulul în proiectul tău:

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

Verifică că modulul se rezolvă:

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

Pasul 2: Importă clasele necesare

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

Pasul 3: Încarcă un PDF dintr-o cale de fișier

pdf.Open încarcă un fișier PDF și returnează un *Document și o eroare:

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

Pasul 4: Încarcă un PDF protejat prin parolă

pdf.OpenWithPassword deschide un fișier care este criptat cu o parolă de utilizator:

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

Pasul 5: Încarcă un PDF dintr-un flux

pdf.OpenStream citește un PDF din orice io.Reader — un răspuns de rețea, un buffer în memorie sau un fișier deschis separat. pdf.OpenStreamWithPassword este echivalentul protejat prin parolă pentru fluxuri:

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

Pasul 6: Inspectează documentul încărcat

După încărcare, Document.PageCount raportează numărul total de pagini și Document.Page(n) preia o singură pagină după indexul său bazat pe 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)

Probleme comune și soluții

OpenWithPassword încă eșuează după ce introduc ceea ce cred că este parola corectă

Furnizarea unei parole incorecte către OpenWithPassword produce o eroare non-nulă. Parolele sunt sensibile la majuscule — confirmați parola exactă a utilizatorului setată în PDF-ul sursă.

OpenStream returnează o eroare pe un PDF criptat

OpenStream nu poate deschide PDF-uri criptate. Folosiți OpenStreamWithPassword pentru fluxuri protejate prin parolă în schimb.

Trebuie să OpenWithPassword pentru un PDF care se dovedește a nu fi criptat?

Nu — deschiderea unui fișier necriptat prin OpenWithPassword este permisă și se comportă la fel ca un apel simplu Open, așa că este sigur să folosești OpenWithPassword când nu ești sigur că un fișier este criptat.

Document.Page(n) returnează o eroare după un succes Open

Numărul paginii este în afara intervalului. Page folosește un index bazat pe 1 între 1 și Document.PageCount(); apelează mai întâi PageCount() pentru a valida intervalul.


Întrebări frecvente

Ce formate de fișier pot încărca cu Open?

Open, OpenWithPassword, OpenStream și OpenStreamWithPassword acceptă exclusiv intrare PDF.

Cum pot încărca un PDF care este deja în memorie în loc de pe disc?

Înfășoară segmentul de octeți într-un bytes.Reader (care satisface io.Reader) și transmite-l către pdf.OpenStream, sau pdf.OpenStreamWithPassword dacă octeții reprezintă un PDF criptat.

Cum încarc un PDF protejat prin parolă?

Apelă pdf.OpenWithPassword(path, password) pentru o cale de fișier, sau pdf.OpenStreamWithPassword(r, password) pentru un flux.

Cum verific câte pagini au fost încărcate?

Apelă Document.PageCount() pe *Document returnat.

Vezi și:

 Română