Arbeiten mit der generierten Kompatibilität API

Arbeiten mit der generierten Kompatibilität API

Arbeiten mit der generierten Kompatibilität API

Aspose.PDF FOSS für Python liefert eine zweite, kleinere API-Oberfläche unter dem aspose_pdf.generated-Unterpaket: generated.document.Document, generated.forms.UnsignedContent und UnsignedContentAbsorber, sowie generated.pdfa.PdfAValidateOptions und PdfAValidationResult. Jede dieser Klassen teilt ihren Namen mit einer Klasse in der primären API der Bibliothek (aspose_pdf.Document, aspose_pdf.UnsignedContent usw.), ist jedoch eine separate, eigenständig definierte Klasse mit einer reduzierten Methodenschnittstelle. Sie existieren als eigenständige Kompatibilitätsschicht – importieren Sie sie immer über ihren vollständigen aspose_pdf.generated.*-Pfad, damit Sie wissen, welche Sie aufrufen.


Dokumentenlebenszyklus über das generierte Dokument

generated.document.Document unterstützt den Kern des Dokumentenlebenszyklus: Laden, Speichern, grundlegende Optimierung, Verschlüsselung und Validierung. Die meisten seiner Eigenschaften sind als Any typisiert, anstatt der reichhaltigeren Typen, die in der primären Document-Klasse bereitgestellt werden.

from aspose_pdf.generated.document import Document

doc = Document()
doc.load_from("input.pdf")

doc.optimize(compress_images=True)
doc.optimize_resources(remove_unused=True)

if doc.validate():
    doc.save("output.pdf")

doc.dispose()

Verschlüsselung und Passwortänderungen verwenden ein Ein-Passwort-Formular anstelle der separaten Benutzer-/Eigentümerpasswörter der primären Document.encrypt:

from aspose_pdf.generated.document import Document

doc = Document()
doc.load_from("input.pdf")

doc.encrypt("secret")
doc.change_passwords("secret", "new-secret")
doc.save("protected.pdf")

Extrahieren von nicht signiertem Inhalt

generated.forms.UnsignedContentAbsorber extrahiert die Seiten, Formularfelder und Anmerkungen eines Dokuments, die noch nicht signiert wurden, in einen UnsignedContent-Container. Rufen Sie extract() auf, um die Extraktion auszuführen, und dann get_extracted() oder has_extracted(), um das Ergebnis zu prüfen, ohne es erneut auszuführen.

from aspose_pdf.generated.document import Document
from aspose_pdf.generated.forms import UnsignedContentAbsorber

doc = Document()
doc.load_from("input.pdf")

absorber = UnsignedContentAbsorber()
extracted = absorber.extract()

print(len(extracted.pages), len(extracted.form_fields), extracted.annotations)

if absorber.has_extracted():
    same_result = absorber.get_extracted()

absorber.reset()

UnsignedContent kann auch direkt gebaut und befüllt werden, unabhängig von einem Absorber:

from aspose_pdf.generated.forms import UnsignedContent

bundle = UnsignedContent()
bundle.add_page(some_page)
bundle.add_form_field(some_field)
bundle.add_annotation(some_annotation)

bundle.remove_page(some_page)
bundle.reset()

PDF/A Validierungsoptionen und -ergebnisse

generated.pdfa.PdfAValidateOptions und PdfAValidationResult sind ein eigenständiges Optionen/Ergebnis-Paar für PDF/A-basierte Validierungs-Workflows. Sie sind nicht die Klassen, die vom primären API s Document.validate_pdfa() zurückgegeben oder von PdfAValidator.process() konsumiert werden — diese verwenden ihre eigenen, separat definierten Klassen PdfAValidateOptions und PdfAValidationResult mit einer reichhaltigeren Oberfläche (level, warnings, is_heuristic und einem font_lookup_directory).

from aspose_pdf.generated.pdfa import PdfAValidateOptions, PdfAValidationResult

options = PdfAValidateOptions()
options.add_input()
options.set_option("level", "1b")

stored_options = options.get_options()

result = PdfAValidationResult()
result.add_error("Font not embedded: Arial")

summary = result.to_dict()
is_valid = result.is_valid

Tipps und bewährte Vorgehensweisen

  • Importiere jede generated-Klasse über ihren vollständigen Submodul-Pfad (from aspose_pdf.generated.document import Document und analog für generated.forms und generated.pdfa) — gehe niemals davon aus, dass ein bloßer Document- oder UnsignedContent-Import zur Kompatibilitätsversion aufgelöst wird.
  • Gib der importierten Klasse einen unterscheidenden lokalen Namen, wenn eine Datei im selben Modul auch das primäre API verwendet, damit die beiden Oberflächen an jedem Aufrufort sichtbar getrennt bleiben.
  • Betrachte generated.pdfa.PdfAValidateOptions/PdfAValidationResult als ein eigenständiges Paar: erstelle die Optionen, führe deine eigene Validierungslogik aus und protokolliere die Ergebnisse selbst mit add_error() — sie werden nicht automatisch von Document.validate_pdfa() befüllt.
  • Überprüfe UnsignedContentAbsorber.has_extracted(), bevor du get_extracted() aufrufst, falls du nicht sicher bist, dass extract() bereits ausgeführt wurde.
  • Verwenden Sie bevorzugt das primäre aspose_pdf.Document API für neuen Code, es sei denn, Sie benötigen speziell die reduzierte, generierte Kompatibilitätsoberfläche.

Häufige Probleme

ProblemUrsacheLösung
Falsche Document-Methoden verfügbar (fehlende pages, form, xmp_metadata und ähnliche)Importierte generated.document.Document anstelle des primären aspose_pdf.DocumentImportiere die primäre Klasse (import aspose_pdf; aspose_pdf.Document()), es sei denn, die reduzierte Oberfläche ist beabsichtigt
PdfAValidateOptions/PdfAValidationResult aus generated.pdfa funktionieren nicht mit PdfAValidator.process()Die primäre API s PdfAValidator erwartet ihre eigenen PdfAValidateOptions/PdfAValidationResult-Klassen, nicht die generated.pdfa-VersionenVerwenden Sie die PdfAValidateOptions/PdfAValidationResult Klassen, die von aspose_pdf exportiert werden, für PdfAValidator Workflows
get_extracted() gibt None zurückextract() wurde nie auf dieser UnsignedContentAbsorber-Instanz aufgerufenRufen Sie extract() vor get_extracted() auf, oder prüfen Sie zuerst has_extracted()
Eigenschaften von generated.document.Document sind vom Typ Any und bieten keine AutovervollständigungDie generierte Oberfläche tauscht statische Typisierung gegen ein kleineres, einfacheres API ausCasten Sie den erwarteten Typ am Aufrufort oder dokumentieren Sie ihn, oder wechseln Sie zur primären Document-Klasse für umfangreichere Typisierung

FAQ

Ist aspose_pdf.generated ein Stub oder ein Platzhalter?

Nein. Es ist ein echtes, importierbares Unterpaket mit funktionierenden Klassen — Document, UnsignedContent, UnsignedContentAbsorber, PdfAValidateOptions und PdfAValidationResult — es ist lediglich eine kleinere, eigenständige Oberfläche als das primäre API der Bibliothek.

Warum hat generated.document.Document denselben Namen wie aspose_pdf.Document?

Es handelt sich um zwei unabhängig definierte Klassen, die zufällig denselben Namen haben. Das Importieren aus aspose_pdf.generated.document liefert die Kompatibilitätsversion; das Importieren von aspose_pdf.Document (oder from aspose_pdf import Document) liefert die primäre Version.

Kann ich ein generated.pdfa.PdfAValidateOptions an PdfAValidator.process() übergeben?

Nein. PdfAValidator.process() ist Teil des primären API und erwartet die eigene PdfAValidateOptions-Klasse des primären API, die eine andere Methodensignatur hat (add_input(source) anstelle einer argumentlosen add_input()).

Benötigt UnsignedContentAbsorber.extract() ein Document-Argument?

Nein. extract() nimmt keine Argumente in der erzeugten Kompatibilitätsebene; konstruieren Sie den Absorber und rufen Sie extract() direkt auf.


API Reference Zusammenfassung

Klasse / MethodeBeschreibung
Document.load_fromLädt ein Dokument aus einem Dateipfad, Bytes oder Stream
Document.saveSpeichert das Dokument an einem Ziel
Document.optimizeFührt allgemeine Optimierung durch, optional mit Bildkompression
Document.optimize_resourcesOptimiert gemeinsam genutzte Ressourcen wie Schriftarten und Bilder
Document.encryptVerschlüsselt das Dokument mit einem einzigen Passwort
Document.change_passwordsÄndert das Passwort des Dokuments
Document.validateGibt zurück, ob das Dokument strukturell gültig ist
Document.disposeGibt Ressourcen frei, die mit dem Dokument verbunden sind
UnsignedContent.add_page / remove_pageFügt einer unsigned-content bundle eine Seite hinzu oder entfernt sie
UnsignedContent.add_form_field / remove_form_fieldFügt einer unsigned-content bundle ein Formularfeld hinzu oder entfernt es
UnsignedContent.add_annotation / remove_annotationFügt einer unsigned-content bundle eine Annotation hinzu oder entfernt sie
UnsignedContentAbsorber.extractExtrahiert unsignierten Inhalt in eine UnsignedContent-Instanz
UnsignedContentAbsorber.get_extractedGibt das zuletzt extrahierte UnsignedContent zurück, falls vorhanden
UnsignedContentAbsorber.has_extractedMeldet, ob eine Extraktion durchgeführt wurde
PdfAValidateOptions.add_inputRegistriert eine Eingabequelle zur Validierung
PdfAValidateOptions.set_option / get_optionsSetzt oder liest Validierungsoptionswerte
PdfAValidationResult.add_errorFügt eine Fehlermeldung hinzu und markiert das Ergebnis als ungültig
PdfAValidationResult.to_dictGibt eine Dictionary-Darstellung des Validierungsergebnisses zurück.

Siehe auch

 Deutsch