Come caricare un documento in Go

Come caricare un documento in Go

Aspose.PDF FOSS per Go carica un PDF da un percorso di file, un io.Reader, o una delle due sorgenti protetta da una password, restituendo sempre un valore *Document su cui operare. La libreria è un modulo Go installato con go get.

Guida passo-passo

Passo 1: Installa il pacchetto

Aggiungi il modulo al tuo progetto:

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

Verifica che il modulo venga risolto:

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

Passo 2: Importa le classi necessarie

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

Passo 3: Carica un PDF da un percorso file

pdf.Open carica un file PDF e restituisce un *Document e un errore:

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

Passo 4: Carica un PDF protetto da password

pdf.OpenWithPassword apre un file che è crittografato con una password utente:

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

Passo 5: Carica un PDF da uno stream

pdf.OpenStream legge un PDF da qualsiasi io.Reader — una risposta di rete, un buffer in memoria o un file aperto separatamente. pdf.OpenStreamWithPassword è l’equivalente protetto da password per gli 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)")

Passo 6: Ispeziona il documento caricato

Una volta caricato, Document.PageCount segnala il numero totale di pagine e Document.Page(n) recupera una singola pagina tramite il suo indice basato su 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)

Problemi comuni e soluzioni

OpenWithPassword continua a fallire dopo aver inserito quella che credo sia la password corretta

Fornire una password errata a OpenWithPassword genera un errore non nullo. Le password distinguono maiuscole e minuscole — verifica la password utente esatta impostata sul PDF di origine.

OpenStream restituisce un errore su un PDF crittografato

OpenStream non può aprire PDF crittografati. Usa OpenStreamWithPassword per flussi protetti da password al suo posto.

Devo OpenWithPassword per un PDF che si scopre non essere crittografato?

No — l’apertura di un file non crittografato tramite OpenWithPassword è consentita e si comporta allo stesso modo di una chiamata Open semplice, quindi è sicuro utilizzare OpenWithPassword quando non sei certo che un file sia crittografato.

Document.Page(n) restituisce un errore dopo un’operazione riuscita Open

Il numero di pagina è fuori dall’intervallo. Page utilizza un indice basato su 1 compreso tra 1 e Document.PageCount(); chiama prima PageCount() per convalidare l’intervallo.


Domande Frequenti

Quali formati di file posso caricare con Open?

Open, OpenWithPassword, OpenStream e OpenStreamWithPassword accettano esclusivamente input PDF.

Come posso caricare un PDF che è già in memoria invece che su disco?

Avvolgi la slice di byte in un bytes.Reader (che soddisfa io.Reader) e passala a pdf.OpenStream, oppure a pdf.OpenStreamWithPassword se i byte rappresentano un PDF crittografato.

Come carico un PDF protetto da password?

Chiama pdf.OpenWithPassword(path, password) per un percorso file, o pdf.OpenStreamWithPassword(r, password) per uno stream.

Come verifico quante pagine sono state caricate?

Chiama Document.PageCount() sul *Document restituito.

Vedi anche

 Italiano