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_validSfaturi și bune practici
- Importă fiecare clasă
generatedprin calea completă a submodulului său (from aspose_pdf.generated.document import Document, și în mod similar pentrugenerated.formsșigenerated.pdfa) — nu presupune niciodată că o importare simplăDocumentsauUnsignedContentse 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/PdfAValidationResultca pe o pereche autonomă: construiește opțiunile, rulează propria logică de validare și înregistrează constatările cuadd_error()tu însuți — acestea nu sunt completate automat deDocument.validate_pdfa(). - Verifică
UnsignedContentAbsorber.has_extracted()înainte de a apelaget_extracted()dacă nu ești sigur căextract()a fost deja executat. - Preferă
aspose_pdf.DocumentAPI 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 principal | Importă 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.pdfa | Folosește clasele PdfAValidateOptions/PdfAValidationResult exportate din aspose_pdf pentru fluxurile de lucru PdfAValidator |
get_extracted() returnează None | extract() nu a fost niciodată apelat pe acea instanță UnsignedContentAbsorber | Apelează 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 simplu | Fă 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.save | Salvează documentul într-o destinație |
Document.optimize | Efectuează optimizare generică, opțional comprimând imagini |
Document.optimize_resources | Optimizează resursele partajate, cum ar fi fonturile și imaginile |
Document.encrypt | Criptează documentul cu o singură parolă |
Document.change_passwords | Modifică parola documentului |
Document.validate | Returnează dacă documentul este valid din punct de vedere structural |
Document.dispose | Eliberează resursele asociate documentului |
UnsignedContent.add_page / remove_page | Adaugă sau elimină o pagină dintr-un pachet unsigned-content |
UnsignedContent.add_form_field / remove_form_field | Adaugă sau elimină un câmp de formular dintr-un pachet unsigned-content |
UnsignedContent.add_annotation / remove_annotation | Adaugă sau elimină o adnotare dintr-un pachet unsigned-content |
UnsignedContentAbsorber.extract | Extrage unsigned content într-o instanță UnsignedContent |
UnsignedContentAbsorber.get_extracted | Returnează ultimul UnsignedContent extras, dacă există |
UnsignedContentAbsorber.has_extracted | Raportează dacă extragerea a fost efectuată |
PdfAValidateOptions.add_input | Înregistrează o sursă de intrare pentru validare |
PdfAValidateOptions.set_option / get_options | Setează sau citește valorile opţiunilor de validare |
PdfAValidationResult.add_error | Adaugă un mesaj de eroare și marchează rezultatul ca invalid |
PdfAValidationResult.to_dict | Returnează o reprezentare sub formă de dicționar a rezultatului validării |