Arbeta med den genererade kompatibiliteten API

Arbeta med den genererade kompatibiliteten API

Arbeta med den genererade kompatibiliteten API

Aspose.PDF FOSS för Python levererar en andra, mindre API yta under aspose_pdf.generated underpaketet: generated.document.Document, generated.forms.UnsignedContent och UnsignedContentAbsorber, samt generated.pdfa.PdfAValidateOptions och PdfAValidationResult. Varje av dessa klasser delar sitt namn med en klass i bibliotekets primära API (aspose_pdf.Document, aspose_pdf.UnsignedContent med mera), men de är separata, självständigt definierade klasser med en reducerad metodyta. De finns som ett fristående kompatibilitetslager — importera dem alltid via deras fullständiga aspose_pdf.generated.* sökväg så att du vet vilken du anropar.


Dokumentlivscykel via det genererade Dokumentet

generated.document.Document stödjer den grundläggande dokumentlivscykeln: inläsning, sparande, grundläggande optimering, kryptering och validering. De flesta av dess egenskaper är typade Any snarare än de rikare typer som exponeras på den primära Document klassen.

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

Kryptering och lösenordsändringar använder ett en-lösenordsformulär snarare än de separata användar-/ägarlösenorden i den primära 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")

Extrahera osignerat innehåll

generated.forms.UnsignedContentAbsorber extraherar sidorna, formulärfälten och annotationerna i ett dokument som ännu inte har signerats till en UnsignedContent behållare. Anropa extract() för att köra extraktionen, och sedan get_extracted() eller has_extracted() för att kontrollera resultatet utan att köra om det.

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 också byggas och fyllas i direkt, oberoende av en absorberare:

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 valideringsalternativ och resultat

generated.pdfa.PdfAValidateOptions och PdfAValidationResult är ett fristående alternativ-/resultatpar för PDF/A-stil valideringsarbetsflöden. De är inte de klasser som returneras av den primära API:s Document.validate_pdfa() eller som konsumeras av PdfAValidator.process() — de använder sina egna, separat definierade PdfAValidateOptions och PdfAValidationResult klasser med en rikare yta (level, warnings, is_heuristic och en 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 och bästa praxis

  • Importera varje generated-klass via dess fullständiga submodulväg (from aspose_pdf.generated.document import Document, och på samma sätt för generated.forms och generated.pdfa) — anta aldrig att enbart Document eller UnsignedContent import löser sig till kompatibilitetsversionen.
  • Ge den importerade klassen ett tydligt lokalt namn när en fil också använder den primära API i samma modul, så att de två ytorna förblir tydligt separata vid varje anropspunkt.
  • Behandla generated.pdfa.PdfAValidateOptions/PdfAValidationResult som ett självständigt par: bygg alternativen, kör din egen valideringslogik och registrera resultat med add_error() själv — de fylls inte automatiskt i av Document.validate_pdfa().
  • Kontrollera UnsignedContentAbsorber.has_extracted() innan du anropar get_extracted() om du inte är säker på att extract() redan har körts.
  • Föredra den primära aspose_pdf.Document API för ny kod såvida du inte specifikt behöver den reducerade, genererade-kompatibilitetssurfacet.

Vanliga problem

ProblemOrsakLösning
Fel Document metoder tillgängliga (saknar pages, form, xmp_metadata och liknande)Importerade generated.document.Document istället för den primära aspose_pdf.DocumentImportera den primära klassen (import aspose_pdf; aspose_pdf.Document()) såvida du inte avser den reducerade ytan
PdfAValidateOptions/PdfAValidationResult från generated.pdfa fungerar inte med PdfAValidator.process()Den primära API s PdfAValidator förväntar sig sina egna PdfAValidateOptions/PdfAValidationResult-klasser, inte generated.pdfa-versionernaAnvänd PdfAValidateOptions/PdfAValidationResult-klasserna som exporteras från aspose_pdf för PdfAValidator-arbetsflöden
get_extracted() returnerar Noneextract() anropades aldrig på den UnsignedContentAbsorber-instansenAnropa extract() innan get_extracted(), eller kontrollera has_extracted() först
Egenskaper på generated.document.Document är typade Any och ger ingen autokompletteringDen genererade ytan byter statisk typning mot en mindre, enklare APIKasta eller dokumentera den förväntade typen på anropsstället, eller byt till den primära Document-klassen för rikare typning

FAQ

Är aspose_pdf.generated en stub eller platshållare?

Nej. Det är ett riktigt, importbart underpaket med fungerande klasser — Document, UnsignedContent, UnsignedContentAbsorber, PdfAValidateOptions och PdfAValidationResult — det är helt enkelt en mindre, fristående surface än bibliotekets primära API.

Varför har generated.document.Document samma namn som aspose_pdf.Document?

Det är två oberoende definierade klasser som råkar ha samma namn. Att importera från aspose_pdf.generated.document ger dig kompatibilitetsversionen; att importera aspose_pdf.Document (eller from aspose_pdf import Document) ger dig den primära versionen.

Kan jag skicka en generated.pdfa.PdfAValidateOptions till PdfAValidator.process()?

Nej. PdfAValidator.process() är en del av den primära API och förväntar sig den primära API s egen PdfAValidateOptions klass, som har en annan metodsignatur (add_input(source) istället för en argumentfri add_input()).

Behöver UnsignedContentAbsorber.extract() ett Document-argument?

Nej. extract() tar inga argument i den genererade kompatibilitetsskiktet; konstruera absorberen och anropa extract() direkt.


API Reference Sammanfattning

Klass / MetodBeskrivning
Document.load_fromLaddar ett dokument från en filväg, bytes eller ström
Document.saveSparar dokumentet till en destination
Document.optimizeUtför generisk optimering, valfritt komprimerar bilder
Document.optimize_resourcesOptimerar delade resurser såsom teckensnitt och bilder
Document.encryptKrypterar dokumentet med ett enda lösenord
Document.change_passwordsÄndrar dokumentets lösenord
Document.validateReturnerar om dokumentet är strukturellt giltigt
Document.disposeFrigör resurser som är associerade med dokumentet
UnsignedContent.add_page / remove_pageLägger till eller tar bort en sida från ett unsigned-content bundle
UnsignedContent.add_form_field / remove_form_fieldLägger till eller tar bort ett formulärfält från ett unsigned-content bundle
UnsignedContent.add_annotation / remove_annotationLägger till eller tar bort en annotation från ett unsigned-content bundle
UnsignedContentAbsorber.extractExtraherar osignerat innehåll till en UnsignedContent-instans
UnsignedContentAbsorber.get_extractedReturnerar den senast extraherade UnsignedContent, om någon
UnsignedContentAbsorber.has_extractedRapporterar om extraktion har utförts
PdfAValidateOptions.add_inputRegistrerar en inmatningskälla för validering
PdfAValidateOptions.set_option / get_optionsStäller in eller läser valideringsalternativens värden
PdfAValidationResult.add_errorLägger till ett felmeddelande och markerar resultatet som ogiltigt
PdfAValidationResult.to_dictReturnerar en ordboksrepresentation av valideringsresultatet

Se även

 Svenska