Wie man ein Dokument in Go lädt

Wie man ein Dokument in Go lädt

Aspose.PDF FOSS for Go lädt ein PDF von einem Dateipfad, einem io.Reader, oder einer der beiden Quellen, die durch ein Passwort geschützt sind, und gibt stets einen *Document-Wert zurück, mit dem gearbeitet werden kann. Die Bibliothek ist ein Go-Modul, das mit go get installiert wird.

Schritt-für-Schritt-Anleitung

Schritt 1: Paket installieren

Füge das Modul zu deinem Projekt hinzu:

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

Überprüfe, ob das Modul aufgelöst wird:

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

Schritt 2: Erforderliche Klassen importieren

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

Schritt 3: Laden Sie ein PDF über einen Dateipfad

pdf.Open lädt eine PDF-Datei und gibt ein *Document sowie einen Fehler zurück:

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

Schritt 4: Laden eines passwortgeschützten PDFs

pdf.OpenWithPassword öffnet eine Datei, die mit einem Benutzerpasswort verschlüsselt ist:

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

Schritt 5: Laden eines PDFs aus einem Stream

pdf.OpenStream liest ein PDF aus jedem io.Reader — einer Netzwerkantwort, einem In-Memory-Puffer oder einer separat geöffneten Datei. pdf.OpenStreamWithPassword ist das passwortgeschützte Gegenstück für 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)")

Schritt 6: Das geladene Dokument prüfen

Nach dem Laden gibt Document.PageCount die Gesamtzahl der Seiten aus und Document.Page(n) ruft eine einzelne Seite anhand ihres 1-basierten Index ab:

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)

Häufige Probleme und Lösungen

OpenWithPassword schlägt weiterhin fehl, nachdem ich das meiner Meinung nach richtige Passwort eingegeben habe

Wenn ein falsches Passwort an OpenWithPassword übergeben wird, führt das zu einem non-nil Fehler. Passwörter sind case-sensitive — bestätigen Sie das genaue Benutzerpasswort, das in der Quell-PDF festgelegt ist.

OpenStream gibt einen Fehler bei einer verschlüsselten PDF zurück

OpenStream kann verschlüsselte PDFs nicht öffnen. Verwenden Sie stattdessen OpenStreamWithPassword für passwortgeschützte Streams.

Brauche ich OpenWithPassword für eine PDF, die sich als nicht verschlüsselt herausstellt?

Nein — das Öffnen einer unverschlüsselten Datei über OpenWithPassword ist erlaubt und verhält sich wie ein einfacher Open-Aufruf, sodass es sicher ist, OpenWithPassword zu verwenden, wenn Sie sich nicht sicher sind, ob eine Datei verschlüsselt ist.

Document.Page(n) gibt einen Fehler nach einem erfolgreichen Open

Die Seitenzahl liegt außerhalb des Bereichs. Page verwendet einen 1-basierten Index zwischen 1 und Document.PageCount(); rufen Sie zuerst PageCount() auf, um den Bereich zu prüfen.


Häufig gestellte Fragen

Welche Dateiformate kann ich mit Open laden?

Open, OpenWithPassword, OpenStream und OpenStreamWithPassword akzeptieren ausschließlich PDF-Eingaben.

Wie lade ich ein PDF, das bereits im Speicher und nicht auf der Festplatte liegt?

Packen Sie das Byte-Slice in ein bytes.Reader (das io.Reader erfüllt) und übergeben Sie es an pdf.OpenStream, oder pdf.OpenStreamWithPassword, falls die Bytes ein verschlüsseltes PDF darstellen.

Wie lade ich ein passwortgeschütztes PDF?

Rufen Sie pdf.OpenWithPassword(path, password) für einen Dateipfad auf, oder pdf.OpenStreamWithPassword(r, password) für einen Stream.

Wie prüfe ich, wie viele Seiten geladen wurden?

Rufen Sie Document.PageCount() auf dem zurückgegebenen *Document auf.

Siehe auch

 Deutsch