Werken met de gegenereerde compatibiliteit API

Werken met de gegenereerde compatibiliteit API

Werken met de gegenereerde compatibiliteit API

Aspose.PDF FOSS voor Python levert een tweede, kleinere API interface onder het aspose_pdf.generated subpakket: generated.document.Document, generated.forms.UnsignedContent en UnsignedContentAbsorber, en generated.pdfa.PdfAValidateOptions en PdfAValidationResult. Elk van deze klassen deelt zijn naam met een klasse in de primaire API van de bibliotheek (aspose_pdf.Document, aspose_pdf.UnsignedContent, enzovoort), maar ze zijn afzonderlijke, onafhankelijk gedefinieerde klassen met een gereduceerde methoden-interface. Ze bestaan als een zelfstandige compatibiliteitslaag — importeer ze altijd via hun volledige aspose_pdf.generated.* pad zodat je weet welke je aanroept.


Documentlevenscyclus via het gegenereerde Document

generated.document.Document ondersteunt de kern-documentlevenscyclus: laden, opslaan, basisoptimalisatie, versleuteling en validatie. De meeste van zijn eigenschappen zijn getypeerd Any in plaats van de rijkere typen die worden blootgelegd op de primaire Document klasse.

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

Versleuteling en wachtwoordwijzigingen gebruiken een enkel-wachtwoordformulier in plaats van de afzonderlijke gebruiker/eigenaar-wachtwoorden van de primaire 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")

Onondertekende inhoud extraheren

generated.forms.UnsignedContentAbsorber extraheert de pagina’s, formuliervelden en annotaties van een document die nog niet zijn ondertekend in een UnsignedContent container. Roep extract() aan om de extractie uit te voeren, en daarna get_extracted() of has_extracted() om het resultaat te controleren zonder het opnieuw uit te voeren.

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 kan ook direct worden gebouwd en gevuld, onafhankelijk van een 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 validatie-opties en resultaten

generated.pdfa.PdfAValidateOptions en PdfAValidationResult vormen een zelfstandig opties/resultaat-paar voor PDF/A-stijl validatieworkflows. Het zijn niet de klassen die worden geretourneerd door de primaire API’s Document.validate_pdfa() of gebruikt door PdfAValidator.process() — die gebruiken hun eigen, afzonderlijk gedefinieerde PdfAValidateOptions en PdfAValidationResult klassen met een rijker oppervlak (level, warnings, is_heuristic en een 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

Tips en best practices

  • Import elke generated klasse via het volledige submodulepad (from aspose_pdf.generated.document import Document, en op dezelfde manier voor generated.forms en generated.pdfa) — ga nooit ervan uit dat een kale Document of UnsignedContent import oplost naar de compatibiliteitsversie.
  • Geef de geïmporteerde klasse een onderscheidende lokale naam wanneer een bestand ook de primaire API in dezelfde module gebruikt, zodat de twee oppervlakken duidelijk gescheiden blijven op elke aanroepplaats.
  • Beschouw generated.pdfa.PdfAValidateOptions/PdfAValidationResult als een zelfstandige paar: bouw de opties, voer je eigen validatielogica uit, en registreer de bevindingen zelf met add_error() — ze worden niet automatisch ingevuld door Document.validate_pdfa().
  • Controleer UnsignedContentAbsorber.has_extracted() voordat je get_extracted() aanroept als je niet zeker weet dat extract() al is uitgevoerd.
  • Geef de voorkeur aan de primaire aspose_pdf.Document API voor nieuwe code, tenzij je specifiek de verkleinde, gegenereerde-compatibiliteitslaag nodig hebt.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
Verkeerde Document methoden beschikbaar (ontbrekende pages, form, xmp_metadata, en soortgelijke)Geïmporteerde generated.document.Document in plaats van de primaire aspose_pdf.DocumentImporteer de primaire klasse (import aspose_pdf; aspose_pdf.Document()) tenzij je de gereduceerde interface bedoelt
PdfAValidateOptions/PdfAValidationResult van generated.pdfa werken niet met PdfAValidator.process()De primaire API’s PdfAValidator verwacht zijn eigen PdfAValidateOptions/PdfAValidationResult klassen, niet de generated.pdfa versiesGebruik de PdfAValidateOptions/PdfAValidationResult klassen die geëxporteerd zijn vanuit aspose_pdf voor PdfAValidator werkstromen
get_extracted() retourneert Noneextract() is nooit aangeroepen op die UnsignedContentAbsorber instantieRoep extract() aan vóór get_extracted(), of controleer eerst has_extracted()
Eigenschappen op generated.document.Document zijn getypeerd als Any en bieden geen autocompleteHet gegenereerde oppervlak ruilt statische typage in voor een kleinere, eenvoudigere APICast of documenteer het verwachte type op de aanroepplaats, of schakel over naar de primaire Document klasse voor rijkere typage

FAQ

Is aspose_pdf.generated een stub of een placeholder?

Nee. Het is een echt, importeerbaar subpakket met werkende klassen — Document, UnsignedContent, UnsignedContentAbsorber, PdfAValidateOptions en PdfAValidationResult — het is simpelweg een kleinere, zelfstandige laag dan de primaire API van de bibliotheek.

Waarom heeft generated.document.Document dezelfde naam als aspose_pdf.Document?

Het zijn twee onafhankelijk gedefinieerde klassen die toevallig dezelfde naam hebben. Importeren vanuit aspose_pdf.generated.document levert de compatibiliteitsversie op; importeren van aspose_pdf.Document (of from aspose_pdf import Document) levert de primaire versie op.

Kan ik een generated.pdfa.PdfAValidateOptions doorgeven aan PdfAValidator.process()?

Nee. PdfAValidator.process() maakt deel uit van de primaire API en verwacht de eigen PdfAValidateOptions klasse van de primaire API, die een andere methodesignatuur heeft (add_input(source) in plaats van een argumentloze add_input()).

Heeft UnsignedContentAbsorber.extract() een Document-argument nodig?

Nee. extract() neemt geen argumenten in de gegenereerde compatibiliteitslaag; bouw de absorber op en roep extract() direct aan.


API Reference Samenvatting

Klasse / MethodeBeschrijving
Document.load_fromLaadt een document vanuit een bestandspad, bytes of stream
Document.saveSlaat het document op naar een bestemming
Document.optimizeVoert algemene optimalisatie uit, optioneel met compressie van afbeeldingen
Document.optimize_resourcesOptimaliseert gedeelde bronnen zoals lettertypen en afbeeldingen
Document.encryptVersleutelt het document met een enkel wachtwoord
Document.change_passwordsWijzigt het wachtwoord van het document
Document.validateRetourneert of het document structureel geldig is
Document.disposeVrijgeeft resources die aan het document zijn gekoppeld
UnsignedContent.add_page / remove_pageVoegt een pagina toe aan of verwijdert een pagina uit een unsigned-content bundle
UnsignedContent.add_form_field / remove_form_fieldVoegt een formulierveld toe aan of verwijdert een formulierveld uit een unsigned-content bundle
UnsignedContent.add_annotation / remove_annotationVoegt een annotatie toe aan of verwijdert een annotatie uit een unsigned-content bundle
UnsignedContentAbsorber.extractExtraheert unsigned content naar een UnsignedContent instantie
UnsignedContentAbsorber.get_extractedRetourneert het laatst uitgepakte UnsignedContent, indien aanwezig
UnsignedContentAbsorber.has_extractedRapporteert of extractie is uitgevoerd
PdfAValidateOptions.add_inputRegistreert een invoerbron voor validatie
PdfAValidateOptions.set_option / get_optionsStelt validatieoptiewaarden in of leest ze
PdfAValidationResult.add_errorVoegt een foutmelding toe en markeert het resultaat ongeldig
PdfAValidationResult.to_dictRetourneert een dictionary-representatie van het validatieresultaat

Zie ook

 Nederlands