Aspose.PDF FOSS for Python Fonctionnalités

Aspose.PDF FOSS for Python Fonctionnalités

Aspose.PDF FOSS pour Python Fonctionnalités

Aspose.PDF FOSS pour Python est une bibliothèque pure-Python pour créer, ouvrir, modifier et enregistrer des documents PDF. Cette page passe en revue les principales zones de capacité et les classes qui servent de points d’entrée. Chaque zone est détaillée en profondeur sur sa propre page du guide du développeur.


Gestion des documents et des pages

Document est l’objet racine de chaque opération. Construisez-le sans arguments pour démarrer un nouveau document vide, ou appelez load_from() pour lire un document existant à partir d’un chemin, de bytes, ou d’un flux. document.pages expose le PageCollection mutable, et Page.add_text place du texte positionné sur une page.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
page.add_text("Hello from Aspose.PDF FOSS!", x=72, y=720, font_size=18)
document.save("hello.pdf")

Extraction de texte et recherche

PdfExtractor se lie à un document et extrait le texte page par page. bind_pdf() ouvre la source, extract_text() effectue l’extraction, et get_text() renvoie le résultat accumulé.

from aspose_pdf import PdfExtractor

extractor = PdfExtractor()
extractor.bind_pdf("hello.pdf")
extractor.extract_text()
print(extractor.get_text())
extractor.close()

Pour une recherche et un remplacement positionnés, par fragment, TextFragmentAbsorber expose les objets TextFragment correspondants avec text_search_options contrôlant la sensibilité à la casse et la correspondance d’expression régulière.


Rendu de page en images

Document.save_page_as_image rend une page unique directement en fichier PNG ou TIFF à une résolution DPI configurable. Pour un accès de bas niveau, Page.render renvoie un RasterizedPage avec des données de pixels brutes via get_pixel() et pixels.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.save_page_as_image(0, "page-1.png", dpi=150)

Formulaires et champs interactifs

Les champs AcroForm sont gérés via Document.form, une façade Form. Form.add_text_field() (et les équivalents case à cocher, bouton radio, liste et zone combinée) crée un nouveau champ lié à une page et à un rectangle de widget, renvoyant un Field. Form.fields répertorie chaque champ présent sur le document.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
document.form.add_text_field("customer_name", page, (72, 700, 300, 720))

for field in document.form.fields:
    print(field.name, field.field_type)

document.save("form.pdf")

Sécurité, chiffrement et signatures

Document.encrypt protège un document avec un mot de passe utilisateur (nécessaire pour l’ouvrir) et un mot de passe propriétaire (nécessaire pour modifier les autorisations); decrypt() et change_passwords() gèrent la protection sur un document déjà ouvert. is_encrypted indique l’état actuel.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.encrypt(user_password="secret", owner_password="owner-secret")
document.save("encrypted.pdf")

La vérification de la signature numérique est gérée par PdfSignature.validate, qui renvoie un ValidationResult décrivant le niveau de confiance et l’état de révocation, et SigningUtils fournit des assistants de certificat et de signature PKCS#7/CAdES.


PDF/A et PDF/UA Conformité

Document.validate_pdfa exécute une vérification de conformité heuristique PDF/A et renvoie un PdfAValidationResult; convert_to_pdfa() tente de remédier le document à ce niveau. validate_pdfua() et auto_tag() fournissent la vérification d’accessibilité équivalente et le balisage automatique de l’arbre de structure pour PDF/UA.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")

result = document.validate_pdfa("1b")
if not result.is_valid:
    document.convert_to_pdfa("1b")

document.auto_tag()
document.save("compliant.pdf")

Conseils et bonnes pratiques

  • Modifiez l’objet renvoyé directement par document.pages, page.annotations ou document.form — les modifications apportées à une copie distincte d’une page ou d’un champ ne sont pas reflétées lorsque vous appelez save().
  • PageCollection est indexé à partir de zéro dans cette liaison Python (document.pages[0] est la première page).
  • Interceptez InvalidPasswordException et PdfParseException avant le AsposePdfException plus large lors de l’appel de load_from() sur une entrée non fiable, afin de pouvoir réagir différemment à un mauvais mot de passe qu’à un fichier corrompu.
  • Appelez document.optimize() ou compress_streams() avant save() sur des documents fortement modifiés afin de supprimer les ressources inutilisées et de réduire la taille du fichier.
  • Passez un PdfLoadLimits limité à load_from() lors du traitement de PDF provenant d’une source non fiable, afin de plafonner la mémoire et le nombre d’objets pendant l’analyse.

Problèmes courants

ProblèmeCauseCorrection
save() produit un fichier avec des modifications non modifiéesDes modifications ont été apportées à une page, une annotation ou une copie de champ plutôt qu’à l’objet obtenu à partir de document.pages, annotations ou formModifiez l’objet renvoyé directement par ces collections
InvalidPasswordException on load_from()Le document est protégé par mot de passe et aucun mot de passe, ou le mauvais, n’a été fourniSaisissez le mot de passe correct : document.load_from(path, password="...")
validate_pdfa() signale toujours une erreur de police après convert_to_pdfa()Aucun fichier de police correspondant n’a été trouvé dans le font_lookup_directory fourniAjoutez la police manquante au répertoire de recherche, ou enregistrez-la avec FontRepository avant la conversion
L’image rendue semble videIndice de page incorrect transmis à save_page_as_image() ou render()pages utilise l’indexation à partir de zéro — confirmez l’indice et vérifiez si PdfExtractor renvoie du texte pour cette page.
Le champ ajouté avec Form.add_text_field() n’apparaît pas sur la pageLe rectangle du widget se trouve en dehors du media_box de la pageConfirmez que les coordonnées du rectangle sont dans Page.media_box

FAQ

Le FOSS Aspose.PDF pour Python dépend-il d’un moteur PDF commercial?

Non. Il s’agit d’un moteur PDF pure-Python développé de zéro, publié sous licence MIT. Ses seules dépendances d’exécution sont cryptography et asn1crypto, utilisés pour le chiffrement et la vérification de signature.

Puis-je créer un PDF à partir de zéro au lieu d’ouvrir un PDF existant?

Oui. Document() sans arguments crée un document vide en mémoire; appelez document.pages.add() pour ajouter des pages avant l’enregistrement.

Vers quels formats raster puis-je rendre une page?

Page.render et Document.save_page_as_image produisent une sortie raster PNG ou TIFF; le RasterizedPage retourné expose également les données brutes des pixels via get_pixel() et la propriété pixels.

Quelle exception dois-je intercepter pour les erreurs spécifiques au package?

Capturez AsposePdfException. Chaque erreur spécifique au package — y compris le parsing (PdfParseException), le mot de passe et le chiffrement (PdfSecurityException, InvalidPasswordException), et les échecs de validation (PdfValidationException) — en découle.

Où aller ensuite?

Le guide de démarrage couvre l’installation, la licence et un premier exemple fonctionnel. Ce guide développeur poursuit avec des sujets de gestion de documents tels que les formulaires, les pièces jointes de fichiers intégrées, la découverte de polices et la création de plans/marquages.


API Reference Résumé

Classe/MéthodeDescription
DocumentObjet racine — créer, charger, enregistrer et gérer un PDF
Document.pagesLe PageCollection mutable du document
Document.load_from / Document.saveLire depuis ou écrire vers un chemin, des octets ou un flux
Document.encrypt / Document.decryptProtéger par mot de passe ou supprimer la protection
Document.validate_pdfa / Document.convert_to_pdfaContrôle heuristique de conformité PDF/A et conversion
Document.validate_pdfua() / Document.auto_tagContrôle d’accessibilité PDF/UA et auto-étiquetage de la structure
Page.add_textAjouter du texte positionné à une page
Page.renderRendre une page en RasterizedPage
PdfExtractorExtraire le texte des pages et les pièces jointes intégrées
PdfFileEditorConcaténer, scinder, insérer et supprimer des pages entre les fichiers
Form / FieldAcroForm conteneur et champs de formulaire individuels
PdfSignature / SigningUtilsValidation et création de signature numérique
AsposePdfExceptionClasse de base pour chaque exception spécifique à un paquet

Voir aussi

 Français