1. Produits
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Java

Aspose.PDF FOSS pour Java

Créez et manipulez des documents PDF depuis Java — avec annotations, champs de formulaire, manipulation de pages et conformité PDF/A. Sous licence MIT.

Bibliothèque Java gratuite sous licence MIT pour la création et la manipulation de PDF

Aspose.PDF FOSS pour Java est une bibliothèque Java sous licence MIT pour créer et travailler avec des documents PDF. Elle fournit une classe Document complète comme point d’entrée central, ainsi qu’une couverture complète des annotations, des champs de formulaire interactifs, de la manipulation de pages, des métadonnées et de la validation de conformité PDF/A.

La bibliothèque expose 527 classes couvrant l’intégralité de la spécification PDF : structure du document via Document, Page et PageCollection ; annotations via la hiérarchie Annotation (incluant WidgetAnnotation, FreeTextAnnotation et HighlightAnnotation) ; formulaires interactifs avec Form, ButtonField, CheckboxField et RadioButtonField ; rendu des pages via BmpDevice ; et vérification de conformité PDF/A via ActionRules et ActionFixes. Le chiffrement est fourni via AESCipher en mode CBC.

Ajoutez Aspose.PDF FOSS à votre projet Maven en utilisant le groupId org.aspose et l’artifactId aspose-pdf. La bibliothèque nécessite Java 11 ou une version ultérieure et est entièrement sous licence MIT. Pour les fonctionnalités et le support d’entreprise, voir Aspose.PDF for Java — Enterprise Product.

Structure du document et gestion des pages

  • Document API: Utilisez la classe Document pour créer de nouveaux documents PDF. Les documents existants peuvent être accessibles via les constructeurs Document(filePath) ou Document(stream).
  • Gestion des pages : Ajouter, accéder et modifier les pages via PageCollection. Chaque Page expose MediaBox, CropBox, la rotation, les ressources et les opérateurs de contenu.
  • Métadonnées : Lire et écrire les métadonnées du document via DocumentInfo et XmpMetadata.
  • Structure PDF : Accédez aux objets PDF sous-jacents via getParser(), getCatalog() et getTrailer().
  • Fichiers intégrés : Gérez les collections de fichiers intégrés avec getEmbeddedFiles().

Scénarios courants de traitement de documents

  • Génération de PDF: Construisez des documents de manière programmatique en créant un Document et en remplissant les pages.
  • Analyse de document : Accédez aux fichiers existants pour inspecter les métadonnées ou énumérer les champs de formulaire.
  • Manipulation de pages: Redimensionner, faire pivoter ou réorganiser les pages en utilisant PdfFileEditor et l’API Page.
  • Flux de travail par lots: Appliquez des transformations cohérentes à plusieurs documents dans des pipelines côté serveur.

Annotations et champs de formulaire

  • Hiérarchie des annotations : La classe abstraite Annotation est la base de toutes les annotations ; les types concrets incluent WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation et UnderlineAnnotation.
  • Formulaires interactifs : Accédez au formulaire du document via Document.getForm() pour énumérer ou créer des instances de ButtonField, CheckboxField et RadioButtonField.
  • Apparence du widget : Contrôlez les propriétés visuelles via AppearanceCharacteristics — couleur de bordure, arrière-plan, rotation et légendes.
  • Édition de formulaire : Utilisez FormEditor et FormElement pour la manipulation de formulaire de niveau supérieur.

Révision de documents et collaboration

  • Annotations de balisage: Ajoutez des annotations de surlignage, de soulignement ou de texte libre aux documents pour les flux de travail de révision.
  • Formulaires interactifs : Créez des documents remplissables avec des boutons radio, des cases à cocher et des boutons poussoirs pour la capture de données.
  • Extraction de données de formulaire: Lire les valeurs des champs de formulaire soumis pour les pipelines côté serveur.
  • Conformité d’archivage : Validez et corrigez les documents pour l’archivage à long terme en utilisant ActionRules et ActionFixes.

Sécurité et opérations de contenu

  • Chiffrement AES : Chiffrez et déchiffrez des tableaux d’octets de données avec AESCipher en mode CBC (AESCipher.encrypt(key, data) et AESCipher.decrypt(key, data)).
  • Gestion des artefacts: Identifier et manipuler les en-têtes, pieds de page, filigranes et images d’arrière-plan via les API Artifact et ArtifactCollection.
  • Redimensionnement du contenu : Ajustez la mise en page du contenu de la page avec PdfFileEditor.resizeContents() et ContentsResizeParameters.
  • Validation de conformité: Validez les règles d’annotation et d’action par rapport aux normes PDF/A en utilisant AnnotationRules et ActionRules.

Cas d’utilisation de la sécurité des documents

  • Payloads chiffrés : Utilisez AESCipher pour chiffrer les sections de données intégrées dans les flux de documents.
  • Protection du document: Appliquer les paramètres de sécurité pour le contrôle d’accès dans les flux de travail de conformité.
  • Watermarking: Détecter et gérer les objets Artifact représentant les filigranes et les décorations de page.
  • Conformité d’archivage : Exécutez ActionFixes et AnnotationFixes pour que les documents existants respectent les normes d’archivage PDF/A-1b.

Créer un Document avec Annotation de Widget

Créez un nouveau document, ajoutez une page et attachez une annotation widget avec style.

try (Document doc = new Document()) {
    Page page = doc.getPages().add();
    WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
    w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
    w.getCharacteristics().setCaption("Submit");
    page.getAnnotations().add(w);
    doc.save("output.pdf");
}
```java
try (Document doc = new Document()) {
    Page page = doc.getPages().add();
    WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
    w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
    w.getCharacteristics().setCaption("Submit");
    page.getAnnotations().add(w);
    doc.save("output.pdf");
}

Créer un Formulaire avec Boutons Radio

Ajoutez un groupe de boutons radio à un formulaire de document et sélectionnez une valeur de façon programmatique.

try (Document doc = new Document()) {
    Page page = doc.getPages().add();
    RadioButtonField radio = new RadioButtonField(page);
    radio.setPartialName("choice");
    radio.addOption("Option1", new Rectangle(50, 50, 70, 70));
    radio.addOption("Option2", new Rectangle(50, 80, 70, 100));
    doc.getForm().add(radio, 1);
    radio.setValue("Option2");
    doc.save("form.pdf");
}

Inspecter les Dimensions de Page du Document

Accédez à un document existant et lisez les dimensions de la boîte média de la première page.

try (Document doc = new Document("input.pdf")) {
    double width = doc.getPages().get(1).getMediaBox().getWidth();
    double height = doc.getPages().get(1).getMediaBox().getHeight();
    System.out.println("Page size: " + width + " x " + height);
}
  

Ressources de support et d'apprentissage

 Français