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.annotationsoderdocument.formdirekt zurückgegebene Objekt — Änderungen an einer separaten Kopie einer Seite oder eines Feldes werden nicht berücksichtigt, wenn Siesave()aufrufen. PageCollectionist nullbasiert in dieser Python-Bindung (document.pages[0]ist die erste Seite).- Fangen Sie
InvalidPasswordExceptionundPdfParseExceptionvor dem allgemeinerenAsposePdfExceptionab, wenn Sieload_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()odercompress_streams()vorsave()bei stark bearbeiteten Dokumenten auf, um ungenutzte Ressourcen zu entfernen und die Dateigröße zu verkleinern. - Übergeben Sie ein begrenztes
PdfLoadLimitsanload_from(), wenn Sie PDFs aus einer nicht vertrauenswürdigen Quelle verarbeiten, um Speicher- und Objektzahlen während des Parsens zu begrenzen.
Häufige Probleme
| Problem | Ursache | Lö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 angegeben | Geben 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 gefunden | Fügen Sie die fehlende Schriftart dem Suchverzeichnis hinzu oder registrieren Sie sie bei FontRepository, bevor Sie konvertieren |
| Das gerenderte Bild sieht leer aus | Falscher Seitenindex an save_page_as_image() oder render() übergeben | pages 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 Seite | Das Widget-Rechteck liegt außerhalb des media_box der Seite | Stellen 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/Methode | Beschreibung |
|---|---|
Document | Root-Objekt — PDF erstellen, laden, speichern und verwalten |
Document.pages | Das veränderbare PageCollection des Dokuments |
Document.load_from / Document.save | Von einem Pfad, Bytes oder Stream lesen oder schreiben |
Document.encrypt / Document.decrypt | Passwortschutz hinzufügen oder entfernen |
Document.validate_pdfa / Document.convert_to_pdfa | Heuristische PDF/A-Kompatibilitätsprüfung und Konvertierung |
Document.validate_pdfua() / Document.auto_tag | PDF/UA Barrierefreiheitsprüfung und automatisches Struktur-Tagging |
Page.add_text | Fügen Sie positionierten Text zu einer Seite hinzu |
Page.render | Rendern Sie eine Seite zu einem RasterizedPage |
PdfExtractor | Extrahieren Sie den Text einer Seite und eingebettete Anhänge |
PdfFileEditor | Seiten über Dateien hinweg zusammenfügen, teilen, einfügen und löschen |
Form / Field | AcroForm Container und einzelne Formularfelder |
PdfSignature / SigningUtils | Validierung und Erstellung digitaler Signaturen |
AsposePdfException | Basisklasse für jede paketspezifische Ausnahme |