Jak načíst dokument v Go

Jak načíst dokument v Go

Aspose.PDF FOSS pro Go načte PDF ze souborové cesty, io.Reader, nebo z obou zdrojů chráněných heslem, vždy vrací hodnotu *Document, na které lze operovat. Knihovna je Go modul instalovaný pomocí go get.

Průvodce krok za krokem

Krok 1: Nainstalujte balíček

Přidejte modul do svého projektu:

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

Ověřte, že modul se vyřeší:

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

Krok 2: Naimportujte požadované třídy

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

Krok 3: Načtěte PDF ze souborové cesty

pdf.Open načte soubor PDF a vrátí *Document a chybu:

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

Krok 4: Načtěte PDF chráněné heslem

pdf.OpenWithPassword otevře soubor, který je zašifrován uživatelským heslem:

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

Krok 5: Načtěte PDF ze streamu

pdf.OpenStream čte PDF z libovolného io.Reader — síťové odezvy, paměťového bufferu nebo souboru otevřeného samostatně. pdf.OpenStreamWithPassword je ekvivalent chráněný heslem pro streamy:

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

Krok 6: Prozkoumejte načtený dokument

Po načtení Document.PageCount hlásí celkový počet stránek a Document.Page(n) načte jednotlivou stránku podle jejího indexu počínaje 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)

Časté problémy a opravy

OpenWithPassword stále selhává, i když zadám to, co považuji za správné heslo

Zadání nesprávného hesla do OpenWithPassword vede k nenulové chybě. Hesla rozlišují velikost písmen — ověřte přesné uživatelské heslo nastavené v původním PDF.

OpenStream vrací chybu u šifrovaného PDF

OpenStream nemůže otevřít šifrovaná PDF. Místo toho použijte OpenStreamWithPassword pro proudy chráněné heslem.

Potřebuji OpenWithPassword pro PDF, které se ukáže jako nešifrované?

Ne — otevírání nešifrovaného souboru přes OpenWithPassword je povoleno a chová se stejně jako běžné volání Open, takže je bezpečné použít OpenWithPassword, pokud si nejste jisti, že je soubor šifrovaný.

Document.Page(n) vrací chybu po úspěšném Open

Číslo stránky je mimo rozsah. Page používá index založený na 1 mezi 1 a Document.PageCount(); nejprve zavolejte PageCount(), abyste ověřili rozsah.


Často kladené otázky

Jaké formáty souborů mohu načíst pomocí Open?

Open, OpenWithPassword, OpenStream a OpenStreamWithPassword všechny přijímají vstup ve formátu PDF výhradně.

Jak načíst PDF, které je již v paměti místo na disku?

Zabalte byte slice do bytes.Reader (který splňuje io.Reader) a předajte jej pdf.OpenStream, nebo pdf.OpenStreamWithPassword, pokud bajty představují šifrované PDF.

Jak načíst PDF chráněné heslem?

Zavolejte pdf.OpenWithPassword(path, password) pro cestu k souboru, nebo pdf.OpenStreamWithPassword(r, password) pro proud.

Jak zkontrolovat, kolik stránek bylo načteno?

Zavolejte Document.PageCount() na vráceném *Document.

Viz také:

 Čeština