Lavorare con la Compatibilità Generata API
Lavorare con la Compatibilità Generata API
Aspose.PDF FOSS per Python fornisce una seconda, più piccola superficie API sotto il subpacchetto aspose_pdf.generated: generated.document.Document, generated.forms.UnsignedContent e UnsignedContentAbsorber, e generated.pdfa.PdfAValidateOptions e PdfAValidationResult. Ognuna di queste classi condivide il suo nome con una classe nella API primaria della libreria (aspose_pdf.Document, aspose_pdf.UnsignedContent, e così via), ma sono classi separate, definite in modo indipendente, con una superficie di metodo ridotta. Esistono come strato di compatibilità autonomo — importa sempre loro tramite il percorso completo aspose_pdf.generated.* così sai quale stai chiamando.
Ciclo di vita del documento tramite il Document generato
generated.document.Document supporta il ciclo di vita fondamentale del documento: caricamento, salvataggio, ottimizzazione di base, crittografia e validazione. La maggior parte delle sue proprietà è tipizzata Any anziché i tipi più ricchi esposti nella classe primaria 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()La crittografia e le modifiche della password utilizzano un modulo a singola password anziché le password separate utente/proprietario della Document.encrypt primaria:
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")Estrazione del contenuto non firmato
generated.forms.UnsignedContentAbsorber estrae le pagine, i campi modulo e le annotazioni di un documento che non sono ancora stati firmati in un contenitore UnsignedContent. Chiama extract() per eseguire l’estrazione, poi get_extracted() o has_extracted() per verificare il risultato senza rieseguirlo.
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 può anche essere costruito e popolato direttamente, indipendente da un assorbitore:
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 opzioni di validazione e risultati
generated.pdfa.PdfAValidateOptions e PdfAValidationResult sono una coppia indipendente di opzioni/risultati per i flussi di lavoro di validazione in stile PDF/A. Non sono le classi restituite dal Document.validate_pdfa() del principale API né consumate da PdfAValidator.process() — queste utilizzano le proprie classi PdfAValidateOptions e PdfAValidationResult, definite separatamente, con una superficie più ricca (level, warnings, is_heuristic e 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_validSuggerimenti e migliori pratiche
- Importa ogni classe
generatedtramite il suo percorso completo del sottomodulo (from aspose_pdf.generated.document import Document, e analogamente pergenerated.formsegenerated.pdfa) — non presumere mai che un importazione semplice diDocumentoUnsignedContentrisolva alla versione di compatibilità. - Assegna alla classe importata un nome locale distintivo ogni volta che un file utilizza anche il principale API nello stesso modulo, così le due interfacce rimangono visibilmente separate in ogni punto di chiamata.
- Considera
generated.pdfa.PdfAValidateOptions/PdfAValidationResultcome una coppia autonoma: costruisci le opzioni, esegui la tua logica di validazione e registra i risultati conadd_error()autonomamente — non vengono popolati automaticamente daDocument.validate_pdfa(). - Verifica
UnsignedContentAbsorber.has_extracted()prima di chiamareget_extracted()se non sei certo cheextract()sia già stato eseguito. - Preferisci il
aspose_pdf.DocumentAPI primario per il nuovo codice, a meno che tu non abbia bisogno specificamente della superficie ridotta di compatibilità generata.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
Metodi Document errati disponibili (mancano pages, form, xmp_metadata e simili) | Importato generated.document.Document invece del aspose_pdf.Document principale | Importa la classe principale (import aspose_pdf; aspose_pdf.Document()) a meno che tu non intenda la superficie ridotta |
PdfAValidateOptions/PdfAValidationResult da generated.pdfa non funzionano con PdfAValidator.process() | Il PdfAValidator del API principale si aspetta le proprie classi PdfAValidateOptions/PdfAValidationResult, non le versioni generated.pdfa | Usa le classi PdfAValidateOptions/PdfAValidationResult esportate da aspose_pdf per i flussi di lavoro PdfAValidator |
get_extracted() restituisce None | extract() non è mai stato chiamato su quell’istanza UnsignedContentAbsorber | Chiama extract() prima di get_extracted(), oppure controlla has_extracted() prima |
Le proprietà su generated.document.Document sono tipizzate Any e non forniscono completamento automatico | L’interfaccia generata scambia il tipaggio statico per un API più piccolo e più semplice | Esegui il cast o documenta il tipo previsto nel punto di chiamata, oppure passa alla classe principale Document per un tipaggio più ricco |
FAQ
È aspose_pdf.generated un stub o un segnaposto?
No. È un vero sottopacchetto importabile con classi funzionanti — Document, UnsignedContent, UnsignedContentAbsorber, PdfAValidateOptions e PdfAValidationResult — è semplicemente una superficie più piccola e autonoma rispetto al API primario della libreria.
Perché generated.document.Document ha lo stesso nome di aspose_pdf.Document?
Sono due classi definite in modo indipendente che, per caso, condividono lo stesso nome. L’importazione da aspose_pdf.generated.document ti fornisce la versione di compatibilità; l’importazione di aspose_pdf.Document (o from aspose_pdf import Document) ti fornisce la versione primaria.
Posso passare un generated.pdfa.PdfAValidateOptions a PdfAValidator.process()?
No. PdfAValidator.process() fa parte del API primario e si aspetta la classe PdfAValidateOptions del API primario, che ha una firma di metodo diversa (add_input(source) invece di un add_input() senza argomenti).
Il metodo UnsignedContentAbsorber.extract() ha bisogno di un argomento Document?
No. extract() non accetta argomenti nella superficie di compatibilità generata; costruisci l’assorbitore e chiama extract() direttamente.
Riepilogo API Reference
| Classe / Metodo | Descrizione |
|---|---|
Document.load_from | Carica un documento da un percorso file, byte o stream |
Document.save | Salva il documento in una destinazione |
Document.optimize | Esegue un’ottimizzazione generica, comprimendo opzionalmente le immagini |
Document.optimize_resources | Ottimizza le risorse condivise come font e immagini |
Document.encrypt | Cifra il documento con una singola password |
Document.change_passwords | Modifica la password del documento |
Document.validate | Restituisce se il documento è strutturalmente valido |
Document.dispose | Rilascia le risorse associate al documento |
UnsignedContent.add_page / remove_page | Aggiunge o rimuove una pagina da un unsigned-content bundle |
UnsignedContent.add_form_field / remove_form_field | Aggiunge o rimuove un campo modulo da un unsigned-content bundle |
UnsignedContent.add_annotation / remove_annotation | Aggiunge o rimuove un’annotazione da un unsigned-content bundle |
UnsignedContentAbsorber.extract | Estrae unsigned content in un’istanza UnsignedContent |
UnsignedContentAbsorber.get_extracted | Restituisce l’ultimo UnsignedContent estratto, se presente |
UnsignedContentAbsorber.has_extracted | Riporta se l’estrazione è stata eseguita |
PdfAValidateOptions.add_input | Registra una sorgente di input per la convalida |
PdfAValidateOptions.set_option / get_options | Imposta o legge i valori delle opzioni di convalida |
PdfAValidationResult.add_error | Aggiunge un messaggio di errore e segna il risultato come non valido |
PdfAValidationResult.to_dict | Restituisce una rappresentazione dizionario del risultato della convalida |