Hoe een document te laden in Go

Hoe een document te laden in Go

Aspose.PDF FOSS voor Go laadt een PDF vanaf een bestandspad, een io.Reader, of een van beide bronnen beschermd met een wachtwoord, en geeft altijd een *Document waarde terug om mee te werken. De bibliotheek is een Go-module die wordt geïnstalleerd met go get.

Stapsgewijze handleiding

Stap 1: Installeer het pakket

Voeg de module toe aan je project:

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

Verifieer dat de module wordt opgelost:

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

Stap 2: Importeer vereiste klassen

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

Stap 3: Laad een PDF vanuit een bestandspad

pdf.Open laadt een PDF-bestand en retourneert een *Document en een fout:

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

Stap 4: Laad een wachtwoord-beveiligde PDF

pdf.OpenWithPassword opent een bestand dat versleuteld is met een gebruikerswachtwoord:

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

Stap 5: Laad een PDF vanuit een stream

pdf.OpenStream leest een PDF van elke io.Reader — een netwerksrespons, een in-memory buffer, of een apart geopend bestand. pdf.OpenStreamWithPassword is het wachtwoord-beveiligde equivalent voor streams:

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

Stap 6: Inspecteer het geladen document

Eenmaal geladen, rapporteert Document.PageCount het totale aantal pagina’s en Document.Page(n) haalt een enkele pagina op via de 1-gebaseerde index:

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)

Veelvoorkomende problemen en oplossingen

OpenWithPassword blijft falen nadat ik volgens mij het juiste wachtwoord invoer

Het opgeven van een onjuist wachtwoord aan OpenWithPassword resulteert in een niet-nil fout. Wachtwoorden zijn hoofdlettergevoelig — bevestig het exacte gebruikerswachtwoord dat op de bron-PDF is ingesteld.

OpenStream geeft een foutmelding bij een versleutelde PDF

OpenStream kan versleutelde PDF’s niet openen. Gebruik OpenStreamWithPassword voor wachtwoord-beveiligde streams in plaats daarvan.

Moet ik OpenWithPassword voor een PDF die blijkt niet versleuteld te zijn?

Nee — het openen van een niet-versleuteld bestand via OpenWithPassword is toegestaan en gedraagt zich hetzelfde als een gewone Open-aanroep, dus het is veilig om OpenWithPassword te gebruiken wanneer je niet zeker weet of een bestand versleuteld is.

Document.Page(n) geeft een foutmelding na een succesvolle Open

Het paginanummer ligt buiten het bereik. Page gebruikt een index beginnend bij 1 tussen 1 en Document.PageCount(); roep eerst PageCount() aan om het bereik te valideren.


Veelgestelde vragen

Welke bestandsformaten kan ik laden met Open?

Open, OpenWithPassword, OpenStream en OpenStreamWithPassword accepteren uitsluitend PDF-invoer.

Hoe laad ik een PDF die al in het geheugen staat in plaats van op schijf?

Wikkel de byte slice in een bytes.Reader (die voldoet aan io.Reader) en geef deze door aan pdf.OpenStream, of pdf.OpenStreamWithPassword als de bytes een versleutelde PDF vertegenwoordigen.

Hoe laad ik een wachtwoordbeveiligde PDF?

Roep pdf.OpenWithPassword(path, password) aan voor een bestandspad, of pdf.OpenStreamWithPassword(r, password) voor een stream.

Hoe controleer ik hoeveel pagina’s er geladen zijn?

Roep Document.PageCount() aan op de geretourneerde *Document.

Zie ook

 Nederlands