Trabajando con la Compatibilidad Generada API

Trabajando con la Compatibilidad Generada API

Trabajando con la Compatibilidad Generada API

Aspose.PDF FOSS para Python envía una segunda, más pequeña superficie API bajo el subpaquete aspose_pdf.generated: generated.document.Document, generated.forms.UnsignedContent y UnsignedContentAbsorber, y generated.pdfa.PdfAValidateOptions y PdfAValidationResult. Cada una de estas clases comparte su nombre con una clase en el API principal de la biblioteca (aspose_pdf.Document, aspose_pdf.UnsignedContent, etc.), pero son clases separadas, definidas de forma independiente, con una superficie de métodos reducida. Existen como una capa de compatibilidad independiente — siempre impórtalas mediante su ruta completa aspose_pdf.generated.* para que sepas cuál estás llamando.


Ciclo de vida del documento mediante el Document generado

generated.document.Document admite el ciclo de vida central del documento: carga, guardado, optimización básica, cifrado y validación. La mayoría de sus propiedades están tipadas como Any en lugar de los tipos más ricos expuestos en la clase 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()

El cifrado y los cambios de contraseña usan un formulario de contraseña única en lugar de las contraseñas separadas de usuario/propietario del 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")

Extrayendo contenido no firmado

generated.forms.UnsignedContentAbsorber extrae las páginas, campos de formulario y anotaciones de un documento que aún no han sido firmados en un contenedor UnsignedContent. Llama a extract() para ejecutar la extracción, luego a get_extracted() o has_extracted() para comprobar el resultado sin volver a ejecutarla.

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 también puede construirse y rellenarse directamente, independiente de un absorbente:

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

Opciones de validación y resultados de PDF/A

generated.pdfa.PdfAValidateOptions y PdfAValidationResult son un par independiente de opción/resultado para flujos de trabajo de validación al estilo PDF/A. No son las clases devueltas por el Document.validate_pdfa() del API principal ni consumidas por PdfAValidator.process() — esas utilizan sus propias clases PdfAValidateOptions y PdfAValidationResult, definidas por separado, con una superficie más rica (level, warnings, is_heuristic y 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

Consejos y Mejores Prácticas

  • Importa cada clase generated a través de su ruta completa de submódulo (from aspose_pdf.generated.document import Document, y de manera similar para generated.forms y generated.pdfa) — nunca asumas que una importación simple de Document o UnsignedContent se resuelve a la versión de compatibilidad.
  • Asigna a la clase importada un nombre local distintivo siempre que un archivo también utilice el API principal en el mismo módulo, de modo que ambas superficies permanezcan visiblemente separadas en cada sitio de llamada.
  • Trata generated.pdfa.PdfAValidateOptions/PdfAValidationResult como un par autónomo: construye las opciones, ejecuta tu propia lógica de validación y registra los hallazgos con add_error() tú mismo — no se rellenan automáticamente mediante Document.validate_pdfa().
  • Verifica UnsignedContentAbsorber.has_extracted() antes de llamar a get_extracted() si no estás seguro de que extract() ya se haya ejecutado.
  • Prefiere el aspose_pdf.Document API principal para el código nuevo, a menos que necesites específicamente la superficie reducida de compatibilidad generada.

Problemas comunes

ProblemaCausaSolución
Métodos Document incorrectos disponibles (faltan pages, form, xmp_metadata y similares)Se importó generated.document.Document en lugar del aspose_pdf.Document principalImporte la clase principal (import aspose_pdf; aspose_pdf.Document()) a menos que la superficie reducida sea lo que pretende
PdfAValidateOptions/PdfAValidationResult de generated.pdfa no funcionan con PdfAValidator.process()El PdfAValidator del API principal espera sus propias clases PdfAValidateOptions/PdfAValidationResult, no las versiones generated.pdfaUtiliza las clases PdfAValidateOptions/PdfAValidationResult exportadas desde aspose_pdf para flujos de trabajo PdfAValidator
get_extracted() devuelve Noneextract() nunca se llamó en esa instancia de UnsignedContentAbsorberLlama a extract() antes de get_extracted(), o verifica has_extracted() primero
Las propiedades en generated.document.Document están tipadas Any y no ofrecen autocompletadoLa superficie generada intercambia tipado estático por un API más pequeño y sencilloHaz un casting o documenta el tipo esperado en el sitio de llamada, o cambia a la clase principal Document para un tipado más rico

FAQ

¿Es aspose_pdf.generated un stub o un marcador de posición?

No. Es un subpaquete real e importable con clases funcionales — Document, UnsignedContent, UnsignedContentAbsorber, PdfAValidateOptions y PdfAValidationResult — simplemente es una superficie más pequeña e independiente que el API principal de la biblioteca.

¿Por qué generated.document.Document tiene el mismo nombre que aspose_pdf.Document?

Son dos clases definidas de forma independiente que coinciden en el nombre. Importar desde aspose_pdf.generated.document te proporciona la versión de compatibilidad; importar aspose_pdf.Document (o from aspose_pdf import Document) te proporciona la versión principal.

¿Puedo pasar un generated.pdfa.PdfAValidateOptions a PdfAValidator.process()?

No. PdfAValidator.process() es parte del API principal y espera la propia clase PdfAValidateOptions del API principal, que tiene una firma de método diferente (add_input(source) en lugar de un add_input() sin argumentos).

¿Necesita UnsignedContentAbsorber.extract() un argumento Document?

No. extract() no recibe argumentos en la superficie de compatibilidad generada; construya el absorbente y llame a extract() directamente.


API Reference Resumen

Clase / MétodoDescripción
Document.load_fromCarga un documento desde una ruta de archivo, bytes o flujo
Document.saveGuarda el documento en un destino
Document.optimizeRealiza una optimización genérica, opcionalmente comprimiendo imágenes
Document.optimize_resourcesOptimiza recursos compartidos como fuentes e imágenes
Document.encryptEncripta el documento con una sola contraseña
Document.change_passwordsCambia la contraseña del documento
Document.validateDevuelve si el documento es estructuralmente válido
Document.disposeLibera los recursos asociados al documento
UnsignedContent.add_page / remove_pageAgrega o elimina una página de un paquete unsigned-content
UnsignedContent.add_form_field / remove_form_fieldAgrega o elimina un campo de formulario de un paquete unsigned-content
UnsignedContent.add_annotation / remove_annotationAgrega o elimina una anotación de un paquete unsigned-content
UnsignedContentAbsorber.extractExtrae contenido unsigned en una instancia UnsignedContent
UnsignedContentAbsorber.get_extractedDevuelve el último UnsignedContent extraído, si lo hay
UnsignedContentAbsorber.has_extractedInforma si se ha realizado la extracción
PdfAValidateOptions.add_inputRegistra una fuente de entrada para validación
PdfAValidateOptions.set_option / get_optionsEstablece o lee los valores de opciones de validación
PdfAValidationResult.add_errorAñade un mensaje de error y marca el resultado como inválido
PdfAValidationResult.to_dictDevuelve una representación de diccionario del resultado de validación

Ver también

 Español