Travailler avec la compatibilité générée API

Travailler avec la compatibilité générée API

Travailler avec la compatibilité générée API

Aspose.PDF FOSS pour Python fournit une seconde surface API plus petite sous le sous-package aspose_pdf.generated: generated.document.Document, generated.forms.UnsignedContent et UnsignedContentAbsorber, ainsi que generated.pdfa.PdfAValidateOptions et PdfAValidationResult. Chacune de ces classes partage son nom avec une classe de la API principale de la bibliothèque (aspose_pdf.Document, aspose_pdf.UnsignedContent, etc.), mais ce sont des classes distinctes, définies indépendamment, avec une surface de méthodes réduite. Elles existent comme une couche de compatibilité autonome — importez-les toujours via leur chemin complet aspose_pdf.generated.* afin de savoir laquelle vous appelez.


Cycle de vie du document via le Document généré

generated.document.Document prend en charge le cycle de vie principal du document: chargement, sauvegarde, optimisation de base, chiffrement et validation. La plupart de ses propriétés sont typées Any plutôt que les types plus riches exposés sur la classe principale 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()

Le chiffrement et les changements de mot de passe utilisent un formulaire à mot de passe unique plutôt que les mots de passe séparés utilisateur/propriétaire du 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")

Extraction de contenu non signé

generated.forms.UnsignedContentAbsorber extrait les pages, les champs de formulaire et les annotations d’un document qui n’ont pas encore été signés dans un conteneur UnsignedContent. Appelez extract() pour lancer l’extraction, puis get_extracted() ou has_extracted() pour vérifier le résultat sans le relancer.

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 peut également être construit et rempli directement, indépendamment d’un absorbeur :

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 options de validation et résultats

generated.pdfa.PdfAValidateOptions et PdfAValidationResult constituent une paire options/résultat autonome pour les flux de travail de validation de style PDF/A. Elles ne sont pas les classes renvoyées par le API principal Document.validate_pdfa() ou consommées par PdfAValidator.process() — celles-ci utilisent leurs propres classes PdfAValidateOptions et PdfAValidationResult définies séparément, avec une surface plus riche (level, warnings, is_heuristic et 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

Conseils et bonnes pratiques

  • Importez chaque classe generated via son chemin de sous-module complet (from aspose_pdf.generated.document import Document, et de même pour generated.forms et generated.pdfa) — ne supposez jamais qu’une importation simple de Document ou de UnsignedContent résout vers la version de compatibilité.
  • Attribuez à la classe importée un nom local distinctif chaque fois qu’un fichier utilise également le API principal dans le même module, afin que les deux surfaces restent visiblement séparées à chaque site d’appel.
  • Considérez generated.pdfa.PdfAValidateOptions/PdfAValidationResult comme une paire autonome: construisez les options, exécutez votre propre logique de validation et enregistrez les résultats avec add_error() vous-même — ils ne sont pas remplis automatiquement par Document.validate_pdfa().
  • Vérifiez UnsignedContentAbsorber.has_extracted() avant d’appeler get_extracted() si vous n’êtes pas certain que extract() a déjà été exécuté.
  • Préférez le aspose_pdf.Document API principal pour le nouveau code, sauf si vous avez spécifiquement besoin de la surface de compatibilité générée réduite.

Problèmes courants

ProblèmeCauseCorrection
Mauvaises méthodes Document disponibles (manquantes pages, form, xmp_metadata, et similaires)Importé generated.document.Document au lieu du aspose_pdf.Document principalImportez la classe principale (import aspose_pdf; aspose_pdf.Document()) à moins que vous ne visiez une surface réduite
Les PdfAValidateOptions/PdfAValidationResult de generated.pdfa ne fonctionnent pas avec PdfAValidator.process()Le PdfAValidator du API principal attend ses propres classes PdfAValidateOptions/PdfAValidationResult, pas les versions generated.pdfaUtilisez les classes PdfAValidateOptions/PdfAValidationResult exportées depuis aspose_pdf pour les flux de travail PdfAValidator
get_extracted() renvoie Noneextract() n’a jamais été appelé sur cette instance UnsignedContentAbsorberAppelez extract() avant get_extracted(), ou vérifiez has_extracted() d’abord
Les propriétés de generated.document.Document sont typées Any et ne proposent pas d’autocomplétionLa surface générée échange le typage statique contre un API plus petit et plus simpleEffectuez un cast ou documentez le type attendu au point d’appel, ou passez à la classe principale Document pour un typage plus riche

FAQ

Le aspose_pdf.generated est-il un bouchon ou un espace réservé?

Non. C’est un vrai sous-package importable avec des classes fonctionnelles — Document, UnsignedContent, UnsignedContentAbsorber, PdfAValidateOptions et PdfAValidationResult — c’est simplement une surface plus petite et autonome que le API principal de la bibliothèque.

Pourquoi generated.document.Document porte-t-il le même nom que aspose_pdf.Document?

Ce sont deux classes définies indépendamment qui se trouvent partager un même nom. Importer depuis aspose_pdf.generated.document vous fournit la version de compatibilité; importer aspose_pdf.Document (ou from aspose_pdf import Document) vous fournit la version principale.

Puis-je passer un generated.pdfa.PdfAValidateOptions à PdfAValidator.process()?

Non. PdfAValidator.process() fait partie du API principal et attend la classe PdfAValidateOptions propre au API principal, qui possède une signature de méthode différente (add_input(source) au lieu d’un add_input() sans argument).

Est-ce que UnsignedContentAbsorber.extract() nécessite un argument Document?

Non. extract() ne prend aucun argument dans la surface de compatibilité générée; construisez l’absorbeur et appelez extract() directement.


API Reference Résumé

Classe / MéthodeDescription
Document.load_fromCharge un document depuis un chemin de fichier, des octets ou un flux
Document.saveEnregistre le document vers une destination
Document.optimizeEffectue une optimisation générique, en compressant éventuellement les images
Document.optimize_resourcesOptimise les ressources partagées telles que les polices et les images
Document.encryptChiffre le document avec un seul mot de passe
Document.change_passwordsModifie le mot de passe du document
Document.validateRetourne si le document est structurellement valide
Document.disposeLibère les ressources associées au document
UnsignedContent.add_page / remove_pageAjoute ou supprime une page d’un bundle de contenu non signé
UnsignedContent.add_form_field / remove_form_fieldAjoute ou supprime un champ de formulaire d’un bundle unsigned-content
UnsignedContent.add_annotation / remove_annotationAjoute ou supprime une annotation d’un bundle unsigned-content
UnsignedContentAbsorber.extractExtrait le contenu unsigned dans une instance UnsignedContent
UnsignedContentAbsorber.get_extractedRenvoie le dernier UnsignedContent extrait, le cas échéant
UnsignedContentAbsorber.has_extractedSignale si l’extraction a été effectuée
PdfAValidateOptions.add_inputEnregistre une source d’entrée pour la validation
PdfAValidateOptions.set_option / get_optionsDéfinit ou lit les valeurs des options de validation
PdfAValidationResult.add_errorAjoute un message d’erreur et marque le résultat comme invalide
PdfAValidationResult.to_dictRenvoie une représentation sous forme de dictionnaire du résultat de validation

Voir aussi

 Français