Lavorare con la Compatibilità Generata API

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_valid

Suggerimenti e migliori pratiche

  • Importa ogni classe generated tramite il suo percorso completo del sottomodulo (from aspose_pdf.generated.document import Document, e analogamente per generated.forms e generated.pdfa) — non presumere mai che un importazione semplice di Document o UnsignedContent risolva 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/PdfAValidationResult come una coppia autonoma: costruisci le opzioni, esegui la tua logica di validazione e registra i risultati con add_error() autonomamente — non vengono popolati automaticamente da Document.validate_pdfa().
  • Verifica UnsignedContentAbsorber.has_extracted() prima di chiamare get_extracted() se non sei certo che extract() sia già stato eseguito.
  • Preferisci il aspose_pdf.Document API primario per il nuovo codice, a meno che tu non abbia bisogno specificamente della superficie ridotta di compatibilità generata.

Problemi comuni

ProblemaCausaCorrezione
Metodi Document errati disponibili (mancano pages, form, xmp_metadata e simili)Importato generated.document.Document invece del aspose_pdf.Document principaleImporta 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.pdfaUsa le classi PdfAValidateOptions/PdfAValidationResult esportate da aspose_pdf per i flussi di lavoro PdfAValidator
get_extracted() restituisce Noneextract() non è mai stato chiamato su quell’istanza UnsignedContentAbsorberChiama extract() prima di get_extracted(), oppure controlla has_extracted() prima
Le proprietà su generated.document.Document sono tipizzate Any e non forniscono completamento automaticoL’interfaccia generata scambia il tipaggio statico per un API più piccolo e più sempliceEsegui 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 / MetodoDescrizione
Document.load_fromCarica un documento da un percorso file, byte o stream
Document.saveSalva il documento in una destinazione
Document.optimizeEsegue un’ottimizzazione generica, comprimendo opzionalmente le immagini
Document.optimize_resourcesOttimizza le risorse condivise come font e immagini
Document.encryptCifra il documento con una singola password
Document.change_passwordsModifica la password del documento
Document.validateRestituisce se il documento è strutturalmente valido
Document.disposeRilascia le risorse associate al documento
UnsignedContent.add_page / remove_pageAggiunge o rimuove una pagina da un unsigned-content bundle
UnsignedContent.add_form_field / remove_form_fieldAggiunge o rimuove un campo modulo da un unsigned-content bundle
UnsignedContent.add_annotation / remove_annotationAggiunge o rimuove un’annotazione da un unsigned-content bundle
UnsignedContentAbsorber.extractEstrae unsigned content in un’istanza UnsignedContent
UnsignedContentAbsorber.get_extractedRestituisce l’ultimo UnsignedContent estratto, se presente
UnsignedContentAbsorber.has_extractedRiporta se l’estrazione è stata eseguita
PdfAValidateOptions.add_inputRegistra una sorgente di input per la convalida
PdfAValidateOptions.set_option / get_optionsImposta o legge i valori delle opzioni di convalida
PdfAValidationResult.add_errorAggiunge un messaggio di errore e segna il risultato come non valido
PdfAValidationResult.to_dictRestituisce una rappresentazione dizionario del risultato della convalida

Vedi anche

 Italiano