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-goVerifiera 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.