Hur man laddar ett dokument i Go

Hur man laddar ett dokument i Go

Aspose.PDF FOSS för Go laddar en PDF från en filväg, en io.Reader, eller någon av källorna skyddade med ett lösenord, och returnerar alltid ett *Document värde att arbeta med. Biblioteket är en Go-modul som installeras med go get.

Steg-för-steg-guide

Steg 1: Installera paketet

Lägg till modulen i ditt projekt:

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

Verifiera att modulen löser:

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

Steg 2: Importera nödvändiga klasser

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

Steg 3: Ladda en PDF från en filväg

pdf.Open laddar en PDF-fil och returnerar en *Document och ett fel:

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

Steg 4: Ladda en lösenordsskyddad PDF

pdf.OpenWithPassword öppnar en fil som är krypterad med ett användarlösenord:

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

Steg 5: Ladda en PDF från en ström

pdf.OpenStream läser en PDF från vilken io.Reader som helst — ett nätverkssvar, en minnesbuffert eller en fil som öppnats separat. pdf.OpenStreamWithPassword är den lösenordsskyddade motsvarigheten för strömmar:

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

Steg 6: Inspektera det inlästa dokumentet

När den är inläst rapporterar Document.PageCount det totala antalet sidor och Document.Page(n) hämtar en enskild sida efter dess 1-baserade 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)

Vanliga problem och lösningar

OpenWithPassword misslyckas fortfarande efter att jag skriver in det jag tror är rätt lösenord

Att ange ett felaktigt lösenord till OpenWithPassword resulterar i ett icke-nil fel. Lösenord är skiftlägeskänsliga — bekräfta det exakta användarlösenordet som är inställt på käll-PDF-filen.

OpenStream returnerar ett fel på en krypterad PDF

OpenStream kan inte öppna krypterade PDF-filer. Använd OpenStreamWithPassword för lösenordsskyddade strömmar istället.

Behöver jag OpenWithPassword för en PDF som visar sig inte vara krypterad?

Nej — att öppna en okrypterad fil via OpenWithPassword är tillåtet och beter sig som ett vanligt Open-anrop, så det är säkert att använda OpenWithPassword när du inte är säker på om en fil är krypterad.

Document.Page(n) returnerar ett fel efter en lyckad Open

Sidnumret är utanför intervallet. Page använder ett 1-baserat index mellan 1 och Document.PageCount(); anropa PageCount() först för att validera intervallet.


Vanliga frågor

Vilka filformat kan jag ladda med Open?

Open, OpenWithPassword, OpenStream och OpenStreamWithPassword accepterar endast PDF-inmatning.

Hur laddar jag en PDF som redan finns i minnet istället för på disk?

Bunta in byte-slicen i en bytes.Reader (som uppfyller io.Reader) och skicka den till pdf.OpenStream, eller pdf.OpenStreamWithPassword om bytena representerar en krypterad PDF.

Hur laddar jag en lösenordsskyddad PDF?

Anropa pdf.OpenWithPassword(path, password) för en filväg, eller pdf.OpenStreamWithPassword(r, password) för en ström.

Hur kontrollerar jag hur många sidor som har laddats?

Anropa Document.PageCount() på den returnerade *Document.

Se även

 Svenska