Lucrul cu Compatibilitatea Generată API

Lucrul cu Compatibilitatea Generată API

Lucrul cu API de compatibilitate generat

Aspose.PDF FOSS pentru Python livrează o a doua suprafață API mai mică, sub pachetul aspose_pdf.generated: generated.document.Document, generated.forms.UnsignedContent și UnsignedContentAbsorber, și generated.pdfa.PdfAValidateOptions și PdfAValidationResult. Fiecare dintre aceste clase își poartă numele ca o clasă din API principal al bibliotecii (aspose_pdf.Document, aspose_pdf.UnsignedContent etc.), dar sunt clase separate, definite independent, cu o suprafață de metode redusă. Ele există ca un strat de compatibilitate independent — importați-le întotdeauna prin calea completă aspose_pdf.generated.* pentru a ști care dintre ele apelați.


Ciclul de viață al documentului prin Documentul generat

generated.document.Document suportă ciclul de viață de bază al documentului: încărcarea, salvarea, optimizarea de bază, criptarea și validarea. Majoritatea proprietăților sale sunt tipizate Any în loc de tipurile mai bogate expuse în clasa principală Document.

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

Criptarea și modificările de parolă folosesc un formular cu o singură parolă în loc de parolele separate de utilizator/proprietar ale Document.encrypt principal:

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

Extracția conținutului nesemnat

generated.forms.UnsignedContentAbsorber extrage paginile, câmpurile de formular și adnotările unui document care nu au fost încă semnate într-un container UnsignedContent. Apelați extract() pentru a executa extracția, apoi get_extracted() sau has_extracted() pentru a verifica rezultatul fără a-l rula din nou.

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 poate fi, de asemenea, construit și populat direct, independent de un 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 opțiuni de validare și rezultate

generated.pdfa.PdfAValidateOptions și PdfAValidationResult sunt o pereche independentă de opțiune/rezultat pentru fluxurile de lucru de validare în stil PDF/A. Ele nu sunt clasele returnate de API principal prin Document.validate_pdfa() sau consumate de PdfAValidator.process() — acestea utilizează propriile clase PdfAValidateOptions și PdfAValidationResult, definite separat, cu o suprafață mai bogată (level, warnings, is_heuristic și un 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

Sfaturi și bune practici

  • Importă fiecare clasă generated prin calea completă a submodulului său (from aspose_pdf.generated.document import Document, și în mod similar pentru generated.forms și generated.pdfa) — nu presupune niciodată că o importare simplă Document sau UnsignedContent se rezolvă la versiunea de compatibilitate.
  • Acordă clasei importate un nume local distinctiv ori de câte ori un fișier folosește și API principal în același modul, pentru ca cele două suprafețe să rămână vizibil separate la fiecare punct de apel.
  • Tratează generated.pdfa.PdfAValidateOptions/PdfAValidationResult ca pe o pereche autonomă: construiește opțiunile, rulează propria logică de validare și înregistrează constatările cu add_error() tu însuți — acestea nu sunt completate automat de Document.validate_pdfa().
  • Verifică UnsignedContentAbsorber.has_extracted() înainte de a apela get_extracted() dacă nu ești sigur că extract() a fost deja executat.
  • Preferă aspose_pdf.Document API principal pentru cod nou, cu excepția cazului în care ai nevoie în mod specific de suprafața redusă, generată pentru compatibilitate.

Probleme comune

ProblemăCauzăRemediere
Metode Document incorecte disponibile (lipsesc pages, form, xmp_metadata și altele)Importat generated.document.Document în loc de aspose_pdf.Document principalImportă clasa principală (import aspose_pdf; aspose_pdf.Document()) cu excepția cazului în care suprafața redusă este ceea ce intenționezi
PdfAValidateOptions/PdfAValidationResult de la generated.pdfa nu funcționează cu PdfAValidator.process()Componenta principală API a PdfAValidator așteaptă clasele proprii PdfAValidateOptions/PdfAValidationResult, nu versiunile generated.pdfaFolosește clasele PdfAValidateOptions/PdfAValidationResult exportate din aspose_pdf pentru fluxurile de lucru PdfAValidator
get_extracted() returnează Noneextract() nu a fost niciodată apelat pe acea instanță UnsignedContentAbsorberApelează extract() înainte de get_extracted(), sau verifică mai întâi has_extracted()
Proprietățile din generated.document.Document sunt tipizate Any și nu oferă completare automatăSuprafața generată înlocuiește tiparea statică cu un API mai mic și mai simpluFă un cast sau documentează tipul așteptat la locul apelului, sau treci la clasa principală Document pentru o tipizare mai bogată

FAQ

Este aspose_pdf.generated un stub sau un placeholder?

Nu. Este un subpachet real, importabil, cu clase funcționale — Document, UnsignedContent, UnsignedContentAbsorber, PdfAValidateOptions și PdfAValidationResult — este pur și simplu o suprafață mai mică, autonomă decât API principal al bibliotecii.

De ce generated.document.Document are același nume ca aspose_pdf.Document?

Ele sunt două clase definite independent care, întâmplător, au același nume. Importarea din aspose_pdf.generated.document îți furnizează versiunea de compatibilitate; importarea aspose_pdf.Document (sau from aspose_pdf import Document) îți furnizează versiunea principală.

Pot să transmit un generated.pdfa.PdfAValidateOptions către PdfAValidator.process()?

Nu. PdfAValidator.process() face parte din API primar și se așteaptă la clasa PdfAValidateOptions proprie a API primar, care are o semnătură de metodă diferită (add_input(source) în loc de un add_input() fără argumente).

Necesită UnsignedContentAbsorber.extract() un argument Document?

Nu. extract() nu primește argumente în suprafața de compatibilitate generată; construiți absorberul și apelați extract() direct.


API Reference Rezumat

Clasă / MetodăDescriere:
Document.load_fromÎncarcă un document dintr-o cale de fișier, octeți sau flux
Document.saveSalvează documentul într-o destinație
Document.optimizeEfectuează optimizare generică, opțional comprimând imagini
Document.optimize_resourcesOptimizează resursele partajate, cum ar fi fonturile și imaginile
Document.encryptCriptează documentul cu o singură parolă
Document.change_passwordsModifică parola documentului
Document.validateReturnează dacă documentul este valid din punct de vedere structural
Document.disposeEliberează resursele asociate documentului
UnsignedContent.add_page / remove_pageAdaugă sau elimină o pagină dintr-un pachet unsigned-content
UnsignedContent.add_form_field / remove_form_fieldAdaugă sau elimină un câmp de formular dintr-un pachet unsigned-content
UnsignedContent.add_annotation / remove_annotationAdaugă sau elimină o adnotare dintr-un pachet unsigned-content
UnsignedContentAbsorber.extractExtrage unsigned content într-o instanță UnsignedContent
UnsignedContentAbsorber.get_extractedReturnează ultimul UnsignedContent extras, dacă există
UnsignedContentAbsorber.has_extractedRaportează dacă extragerea a fost efectuată
PdfAValidateOptions.add_inputÎnregistrează o sursă de intrare pentru validare
PdfAValidateOptions.set_option / get_optionsSetează sau citește valorile opţiunilor de validare
PdfAValidationResult.add_errorAdaugă un mesaj de eroare și marchează rezultatul ca invalid
PdfAValidationResult.to_dictReturnează o reprezentare sub formă de dicționar a rezultatului validării

Vezi și:

 Română