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_validTips en best practices
- Import elke
generatedklasse via het volledige submodulepad (from aspose_pdf.generated.document import Document, en op dezelfde manier voorgenerated.formsengenerated.pdfa) — ga nooit ervan uit dat een kaleDocumentofUnsignedContentimport 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/PdfAValidationResultals een zelfstandige paar: bouw de opties, voer je eigen validatielogica uit, en registreer de bevindingen zelf metadd_error()— ze worden niet automatisch ingevuld doorDocument.validate_pdfa(). - Controleer
UnsignedContentAbsorber.has_extracted()voordat jeget_extracted()aanroept als je niet zeker weet datextract()al is uitgevoerd. - Geef de voorkeur aan de primaire
aspose_pdf.DocumentAPI voor nieuwe code, tenzij je specifiek de verkleinde, gegenereerde-compatibiliteitslaag nodig hebt.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
Verkeerde Document methoden beschikbaar (ontbrekende pages, form, xmp_metadata, en soortgelijke) | Geïmporteerde generated.document.Document in plaats van de primaire aspose_pdf.Document | Importeer 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 versies | Gebruik de PdfAValidateOptions/PdfAValidationResult klassen die geëxporteerd zijn vanuit aspose_pdf voor PdfAValidator werkstromen |
get_extracted() retourneert None | extract() is nooit aangeroepen op die UnsignedContentAbsorber instantie | Roep extract() aan vóór get_extracted(), of controleer eerst has_extracted() |
Eigenschappen op generated.document.Document zijn getypeerd als Any en bieden geen autocomplete | Het gegenereerde oppervlak ruilt statische typage in voor een kleinere, eenvoudigere API | Cast 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 / Methode | Beschrijving |
|---|---|
Document.load_from | Laadt een document vanuit een bestandspad, bytes of stream |
Document.save | Slaat het document op naar een bestemming |
Document.optimize | Voert algemene optimalisatie uit, optioneel met compressie van afbeeldingen |
Document.optimize_resources | Optimaliseert gedeelde bronnen zoals lettertypen en afbeeldingen |
Document.encrypt | Versleutelt het document met een enkel wachtwoord |
Document.change_passwords | Wijzigt het wachtwoord van het document |
Document.validate | Retourneert of het document structureel geldig is |
Document.dispose | Vrijgeeft resources die aan het document zijn gekoppeld |
UnsignedContent.add_page / remove_page | Voegt een pagina toe aan of verwijdert een pagina uit een unsigned-content bundle |
UnsignedContent.add_form_field / remove_form_field | Voegt een formulierveld toe aan of verwijdert een formulierveld uit een unsigned-content bundle |
UnsignedContent.add_annotation / remove_annotation | Voegt een annotatie toe aan of verwijdert een annotatie uit een unsigned-content bundle |
UnsignedContentAbsorber.extract | Extraheert unsigned content naar een UnsignedContent instantie |
UnsignedContentAbsorber.get_extracted | Retourneert het laatst uitgepakte UnsignedContent, indien aanwezig |
UnsignedContentAbsorber.has_extracted | Rapporteert of extractie is uitgevoerd |
PdfAValidateOptions.add_input | Registreert een invoerbron voor validatie |
PdfAValidateOptions.set_option / get_options | Stelt validatieoptiewaarden in of leest ze |
PdfAValidationResult.add_error | Voegt een foutmelding toe en markeert het resultaat ongeldig |
PdfAValidationResult.to_dict | Retourneert een dictionary-representatie van het validatieresultaat |