Aspose.PDF FOSS for Python Funktionen

Aspose.PDF FOSS for Python Funktionen

Aspose.PDF FOSS für Python Funktionen

Aspose.PDF FOSS für Python ist eine pure-Python Bibliothek zum Erstellen, Öffnen, Ändern und Speichern von PDF-Dokumenten. Diese Seite gibt einen Überblick über die wichtigsten Funktionsbereiche und die Klassen, die als Einstiegspunkte dienen. Jeder Bereich wird in seiner eigenen Entwicklerhandbuch-Seite ausführlich behandelt.


Dokumenten- und Seitenverwaltung

Document ist das Wurzelobjekt für jede Operation. Erstelle es ohne Argumente, um ein neues, leeres Dokument zu starten, oder rufe load_from() auf, um ein bestehendes aus einem Pfad, Bytes oder Stream zu lesen. document.pages stellt das veränderbare PageCollection bereit, und Page.add_text platziert positionierten Text auf einer Seite.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
page.add_text("Hello from Aspose.PDF FOSS!", x=72, y=720, font_size=18)
document.save("hello.pdf")

Textextraktion und Suche

PdfExtractor bindet an ein Dokument und extrahiert Text Seite für Seite. bind_pdf() öffnet die Quelle, extract_text() führt die Extraktion durch, und get_text() gibt das kumulierte Ergebnis zurück.

from aspose_pdf import PdfExtractor

extractor = PdfExtractor()
extractor.bind_pdf("hello.pdf")
extractor.extract_text()
print(extractor.get_text())
extractor.close()

Für positionierte, fragmentweise Suche und Ersetzung stellt TextFragmentAbsorber passende TextFragment-Objekte bereit, wobei text_search_options die Groß-/Kleinschreibung und die Regex-Übereinstimmung steuert.


Seitenrendering zu Bildern

Document.save_page_as_image rendert eine einzelne Seite direkt in eine PNG- oder TIFF-Datei mit konfigurierbarer DPI. Für den Zugriff auf niedrigerer Ebene gibt Page.render ein RasterizedPage mit rohen Pixeldaten über get_pixel() und pixels zurück.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.save_page_as_image(0, "page-1.png", dpi=150)

Formulare und interaktive Felder

AcroForm-Felder werden über Document.form verwaltet, eine Form-Fassade. Form.add_text_field() (und die entsprechenden Checkbox-, Radio-, Listen- und Kombinationsfeld-Entsprechungen) erstellt ein neues Feld, das an eine Seite und ein Widget-Rechteck gebunden ist, und gibt ein Field zurück. Form.fields listet jedes derzeit im Dokument vorhandene Feld auf.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
document.form.add_text_field("customer_name", page, (72, 700, 300, 720))

for field in document.form.fields:
    print(field.name, field.field_type)

document.save("form.pdf")

Sicherheit, Verschlüsselung und Signaturen

Document.encrypt schützt ein Dokument mit einem Benutzerpasswort (zum Öffnen benötigt) und einem Eigentümerpasswort (zum Ändern von Berechtigungen benötigt); decrypt() und change_passwords() verwalten den Schutz eines bereits geöffneten Dokuments. is_encrypted meldet den aktuellen Zustand.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.encrypt(user_password="secret", owner_password="owner-secret")
document.save("encrypted.pdf")

Die Überprüfung digitaler Signaturen wird von PdfSignature.validate durchgeführt, das ein ValidationResult zurückgibt, das Vertrauen und Widerrufsstatus beschreibt, und SigningUtils stellt Zertifikats- und PKCS#7/CAdES-Signaturhilfen bereit.


PDF/A und PDF/UA Compliance

Document.validate_pdfa führt eine heuristische PDF/A Konformitätsprüfung durch und gibt ein PdfAValidationResult zurück; convert_to_pdfa() versucht, das Dokument zu diesem Niveau zu remediieren. validate_pdfua() und auto_tag() bieten die gleichwertige Barrierefreiheitsprüfung und automatisches Strukturbaum-Tagging für PDF/UA.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")

result = document.validate_pdfa("1b")
if not result.is_valid:
    document.convert_to_pdfa("1b")

document.auto_tag()
document.save("compliant.pdf")

Tipps und bewährte Verfahren

  • Ändern Sie das von document.pages, page.annotations oder document.form direkt zurückgegebene Objekt — Änderungen an einer separaten Kopie einer Seite oder eines Feldes werden nicht berücksichtigt, wenn Sie save() aufrufen.
  • PageCollection ist nullbasiert in dieser Python-Bindung (document.pages[0] ist die erste Seite).
  • Fangen Sie InvalidPasswordException und PdfParseException vor dem allgemeineren AsposePdfException ab, wenn Sie load_from() mit nicht vertrauenswürdigen Eingaben aufrufen, damit Sie anders auf ein falsches Passwort als auf eine beschädigte Datei reagieren können.
  • Rufen Sie document.optimize() oder compress_streams() vor save() bei stark bearbeiteten Dokumenten auf, um ungenutzte Ressourcen zu entfernen und die Dateigröße zu verkleinern.
  • Übergeben Sie ein begrenztes PdfLoadLimits an load_from(), wenn Sie PDFs aus einer nicht vertrauenswürdigen Quelle verarbeiten, um Speicher- und Objektzahlen während des Parsens zu begrenzen.

Häufige Probleme

ProblemUrsacheLösung
save() erzeugt eine Datei mit unveränderten ÄnderungenÄnderungen wurden an einer Seiten-, Anmerkungs- oder Feldkopie vorgenommen, anstatt am Objekt, das von document.pages, annotations oder form erhalten wurdeÄndern Sie das Objekt, das von diesen Sammlungen direkt zurückgegeben wird
InvalidPasswordException auf load_from()Das Dokument ist passwortgeschützt und es wurde kein Passwort oder ein falsches Passwort angegebenGeben Sie das korrekte Passwort ein: document.load_from(path, password="...")
validate_pdfa() meldet weiterhin einen Schriftartfehler nach convert_to_pdfa()Keine passende Schriftartdatei wurde im bereitgestellten font_lookup_directory gefundenFügen Sie die fehlende Schriftart dem Suchverzeichnis hinzu oder registrieren Sie sie bei FontRepository, bevor Sie konvertieren
Das gerenderte Bild sieht leer ausFalscher Seitenindex an save_page_as_image() oder render() übergebenpages ist nullbasiert — prüfen Sie den Index und überprüfen Sie, ob PdfExtractor überhaupt Text für diese Seite zurückgibt
Feld, das mit Form.add_text_field() hinzugefügt wurde, erscheint nicht auf der SeiteDas Widget-Rechteck liegt außerhalb des media_box der SeiteStellen Sie sicher, dass die Rechteckkoordinaten innerhalb von Page.media_box liegen

FAQ

Hängt Aspose.PDF FOSS für Python von einer kommerziellen PDF-Engine ab?

Nein. Es ist eine von Grund auf neu entwickelte, reine-Python-PDF-Engine, die unter der MIT-Lizenz veröffentlicht wurde. Ihre einzigen Laufzeitabhängigkeiten sind cryptography und asn1crypto, die für Verschlüsselung und Signaturprüfung verwendet werden.

Kann ich ein PDF von Grund auf neu erstellen, anstatt ein bestehendes zu öffnen?

Ja. Document() ohne Argumente erstellt ein leeres, im Speicher befindliches Dokument; rufen Sie document.pages.add() auf, um Seiten hinzuzufügen, bevor Sie speichern.

In welche Rasterformate kann ich eine Seite rendern?

Page.render und Document.save_page_as_image erzeugen PNG- oder TIFF-Rasterausgabe; das zurückgegebene RasterizedPage stellt außerdem Rohpixel-Daten über get_pixel() und die pixels-Eigenschaft bereit.

Welche Ausnahme sollte ich für paketbezogene Fehler abfangen?

Fange AsposePdfException. Jeder paketbezogene Fehler—einschließlich Parsing (PdfParseException), Passwort und Verschlüsselung (PdfSecurityException, InvalidPasswordException) sowie Validierung (PdfValidationException)—leitet sich davon ab.

Wohin gehe ich als Nächstes?

Getting Started behandelt Installation, Lizenzierung und ein erstes funktionierendes Beispiel. Dieses Entwicklerhandbuch führt fort mit Themen zur Dokumentenverwaltung wie Formulare, eingebettete Dateianhänge, Schriftartenerkennung und das Erstellen von Gliederungen/Lesezeichen.


API Reference Zusammenfassung

Klasse/MethodeBeschreibung
DocumentRoot-Objekt — PDF erstellen, laden, speichern und verwalten
Document.pagesDas veränderbare PageCollection des Dokuments
Document.load_from / Document.saveVon einem Pfad, Bytes oder Stream lesen oder schreiben
Document.encrypt / Document.decryptPasswortschutz hinzufügen oder entfernen
Document.validate_pdfa / Document.convert_to_pdfaHeuristische PDF/A-Kompatibilitätsprüfung und Konvertierung
Document.validate_pdfua() / Document.auto_tagPDF/UA Barrierefreiheitsprüfung und automatisches Struktur-Tagging
Page.add_textFügen Sie positionierten Text zu einer Seite hinzu
Page.renderRendern Sie eine Seite zu einem RasterizedPage
PdfExtractorExtrahieren Sie den Text einer Seite und eingebettete Anhänge
PdfFileEditorSeiten über Dateien hinweg zusammenfügen, teilen, einfügen und löschen
Form / FieldAcroForm Container und einzelne Formularfelder
PdfSignature / SigningUtilsValidierung und Erstellung digitaler Signaturen
AsposePdfExceptionBasisklasse für jede paketspezifische Ausnahme

Siehe auch

 Deutsch