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_validTips 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örgenerated.formsochgenerated.pdfa) — anta aldrig att enbartDocumentellerUnsignedContentimport 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/PdfAValidationResultsom ett självständigt par: bygg alternativen, kör din egen valideringslogik och registrera resultat medadd_error()själv — de fylls inte automatiskt i avDocument.validate_pdfa(). - Kontrollera
UnsignedContentAbsorber.has_extracted()innan du anroparget_extracted()om du inte är säker på attextract()redan har körts. - Föredra den primära
aspose_pdf.DocumentAPI för ny kod såvida du inte specifikt behöver den reducerade, genererade-kompatibilitetssurfacet.
Vanliga problem
| Problem | Orsak | Lö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.Document | Importera 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-versionerna | Använd PdfAValidateOptions/PdfAValidationResult-klasserna som exporteras från aspose_pdf för PdfAValidator-arbetsflöden |
get_extracted() returnerar None | extract() anropades aldrig på den UnsignedContentAbsorber-instansen | Anropa extract() innan get_extracted(), eller kontrollera has_extracted() först |
Egenskaper på generated.document.Document är typade Any och ger ingen autokomplettering | Den genererade ytan byter statisk typning mot en mindre, enklare API | Kasta 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 / Metod | Beskrivning |
|---|---|
Document.load_from | Laddar ett dokument från en filväg, bytes eller ström |
Document.save | Sparar dokumentet till en destination |
Document.optimize | Utför generisk optimering, valfritt komprimerar bilder |
Document.optimize_resources | Optimerar delade resurser såsom teckensnitt och bilder |
Document.encrypt | Krypterar dokumentet med ett enda lösenord |
Document.change_passwords | Ändrar dokumentets lösenord |
Document.validate | Returnerar om dokumentet är strukturellt giltigt |
Document.dispose | Frigör resurser som är associerade med dokumentet |
UnsignedContent.add_page / remove_page | Lägger till eller tar bort en sida från ett unsigned-content bundle |
UnsignedContent.add_form_field / remove_form_field | Lägger till eller tar bort ett formulärfält från ett unsigned-content bundle |
UnsignedContent.add_annotation / remove_annotation | Lägger till eller tar bort en annotation från ett unsigned-content bundle |
UnsignedContentAbsorber.extract | Extraherar osignerat innehåll till en UnsignedContent-instans |
UnsignedContentAbsorber.get_extracted | Returnerar den senast extraherade UnsignedContent, om någon |
UnsignedContentAbsorber.has_extracted | Rapporterar om extraktion har utförts |
PdfAValidateOptions.add_input | Registrerar en inmatningskälla för validering |
PdfAValidateOptions.set_option / get_options | Ställer in eller läser valideringsalternativens värden |
PdfAValidationResult.add_error | Lägger till ett felmeddelande och markerar resultatet som ogiltigt |
PdfAValidationResult.to_dict | Returnerar en ordboksrepresentation av valideringsresultatet |