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

Aspose.PDF FOSS for 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 de page 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 ultérieur 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

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

Scénarios communs de traitement des documents

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

Annotations et champs de formulaire

  • Hiérarchie des annotations: La classe abstraite Annotation est la base de toutes les annothèques; les types concrets incluent WidgetAnnotation, FreeTextAnnotation,HighlightAnnotation et UnderlineAnnotation.
  • ** Formulaires interactifs:** Accédez au formulaire de document via Document.getForm() pour énumérer ou créer les instances ButtonField, CheckboxField et RadioButtonField.
  • ** Apparence du widget:** Contrôlez les propriétés visuelles à travers AppearanceCharacteristics couleur de bordure, fond, rotation et légendes.
  • ** Modification du formulaire:** Utilisez FormEditor et FormElement pour la manipulation de formulaires à un niveau plus élevé.

Révision et collaboration des documents

  • Annotations de balisage: Ajouter des annotation en soulignant, sous-entendant ou en texte libre aux documents pour les flux de travail d’examen.
  • ** Formulaires interactifs:** Créer des documents remplis avec des boutons radio, des cases à cocher et des touches poussées pour la capture de données.
  • Extraction des données du formulaire: Lisez les valeurs de champs du formule soumis pour les pipelines côté serveur.
  • ** Conformité des archives:** Valider et corriger les documents pour une archive à long terme en utilisant ActionRules et ActionFixes.

Sécurité et contenu des opérations

  • **Crypter et décryptere les données des matrices de octets avec AESCipher en utilisant le mode CBC (AESCipher.encrypt(key, data) et AESCipher.decrypt(key, data)).
  • Gestion des artefacts: Identifier et manipuler les en-têtes, les pieds de page, le filigrane et l’image d’arrière-plan via les API Artifact et ArtifactCollection.
  • ** Redimensionner le contenu:** Ajuster la mise en page du contenue de la page avec PdfFileEditor.resizeContents() et ContentsResizeParameters.
  • ** Validation de la conformité:** Vérifier 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

  • ** Charges utiles cryptées:** Utilisez AESCipher pour chiffrer les sections de données intégrées dans des flux de documents.
  • Protection des documents: Appliquer les paramètres de sécurité pour le contrôle d’accès dans les flux de travail relatifs à la conformité.
  • ** Marquage d’eau:** Détecter et gérer les objets Artifact représentant des filigranes et décorations de page.
  • ** Conformité des archives:** Exécuter ActionFixes et AnnotationFixes pour que les documents existants répondent aux normes d’archivage PDF/A-1b.

Créer un document avec une annotation de widget

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

try (Document doc = new Document()) ```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 des boutons radio

Ajouter un groupe de boutons radio à un formulaire document et sélectionner une valeur programmatiquement.

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 des pages du document

Accédez à un document existant et lisez les dimensions de la boîte multimédia de sa 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