Introduction
Aspose.PDF FOSS for Java is an MIT-licensed Java library for creating and manipulating PDF documents. Il est disponible sur GitHub sous la licence MIT et ne nécessite pas de clé API ou contrat commercial. La bibliothèque expose 527 cours couvrant le PDF complet spécifications de la structure du document à des annotations, des formulaires interactifs, le rendu de page, et les opérations cryptographiques.
La bibliothèque est construite autour de la Document La classe, qui est le point d’entrée central pour la toutes les opérations PDF. Créer un nouveau document, accéder aux pages par le biais de la PageCollection, Lire les métadonnées par le biais de DocumentInfo,ou naviguer dans le catalogue par getCatalog() et getTrailer() Tout commence par un Document et instance.
Démarrage rapide
Ajoutez la dépendance à votre pom.xml:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>0.1.0-alpha</version>
</dependency>
La bibliothèque organise toutes les classes d’API publiques sous trois paquets. Ajouter ces déclarations de package à tout fichier source Java qui utilise l’ API:
// Core API — Document, Page, Annotation, Form, etc.
org.aspose.pdf.*
// Annotation subclasses
org.aspose.pdf.annotations.*
// Facade classes — PdfFileEditor, PdfAnnotationEditor, etc.
org.aspose.pdf.facades.*
Aspose.PDF FOSS for Java requires Java 11 or later. The source code and issue tracker sont disponibles à https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.
Pour commencer
Créer et enregistrer un document minimum pour vérifier la configuration :
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
doc.save("output.pdf");
System.out.println("Pages: " + pages.getCount());
}
Le Document Le constructeur de classe accepte un fil ou un flux pour accéder à des fichiers existants. fichiers, ou peut être appelé sans arguments pour créer un document blanche. pages sont gérées par le PageCollection,accessible par le biais de Document.getPages().Chaque Page Exposer son Géométrie par getMediaBox(), getCropBox(),et getRotate(),et donne accès à ressources, opérateurs de contenu et annotations.
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
// page.getMediaBox() -> Rectangle with width/height
// page.getAnnotations() -> AnnotationCollection
doc.save("output.pdf");
}
Le PdfFileEditor La classe fournit concatenate() pour la réunification de plusieurs documents et resizeContents() avec ContentsResizeParameters Pour adapter le contenu de la structure intérieure Les limites de page existantes.
Annonce
Aspose.PDF FOSS for Java implements the full PDF annotation hierarchy rooted at the Abstrait Annotation Les types d’annonces spécifiques incluent WidgetAnnotation Pour les contrôles de forme, FreeTextAnnotation Pour les textes de callouts, HighlightAnnotation et UnderlineAnnotation pour le marquage, et CircleAnnotation et CaretAnnotation Pour Les notes graphiques.
Chaque note est associée à un Page et a Rectangle Définir sa localisation. Les propriétés visuelles sont contrôlées par AppearanceCharacteristics,qui expose setBorder(), setBackground(), setRotate(),et setCaption() Méthodes - Annonces Ajouter à une page par page.getAnnotations().add(annotation).
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.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("annotated.pdf");
}
Les champs de forme interactive
Le Form Classement accessible par Document.getForm(), gère tous les champs AcroForm. La bibliothèque fournit ButtonField, CheckboxField, RadioButtonField, TextBoxField, ComboBoxField,et ListBoxField pour la construction de formes remplissables. FormEditor est un classe facade pour travailler avec les champs de forme dans un document lié.
Les groupes de boutons radio sont créés avec RadioButtonField,qui accepte une page et soutient addOption() pour ajouter des choix sélectionnables, chacun associé à un Rectangle Pour sa vision Localisation : Le setValue() Le système sélectionne programmablement une option.
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
RadioButtonField radio = new RadioButtonField(page);
radio.setPartialName("answer");
radio.addOption("Yes", new Rectangle(50, 50, 70, 70));
radio.addOption("No", new Rectangle(50, 80, 70, 100));
doc.getForm().add(radio, 1);
radio.setValue("Yes");
doc.save("form.pdf");
}
Sécurité : AES Encryption
Le AESCipher La classe implémentera la cryptage AES dans le mode CBC pour l’encryptation et le décrypter Les données de byte sont intégrées dans les documents PDF. AESCipher.encrypt(key, data) Retourner le Cryptage de la fiche et AESCipher.decrypt(key, data) Récupérer le plainte original. Pour le contrôle explicite IV, encryptWithIV(key, iv, plaintext) et decryptWithIV(key, iv, cipherText) Il est possible de faire une opération déterministe.
PDF/A Validation de la conformité
La bibliothèque comprend ActionRules et ActionFixes pour la validation de conformité PDF/A et Correction . ActionRules.validate() les vérifications pour les actions interdites dans le catalogue, la page et Entrée de widget. ActionFixes Il fournit des méthodes telles que removeCatalogAA(), removePageAA(),et removeWidgetAA() - Réparer les dictionnaires d’action non conformes. De même, AnnotationRules et AnnotationFixes - Traiter la conformité des annotations.
Articles : chevaux, pieds et marques d’eau
Le Artifact modèles de classe décorations de page telles que les heurts, pieds, marques d’eau, et Images de fond. ArtifactCollection,accessible par le biais des ressources de page, permet l’enumeration - L’élimination des objets d’art. Iterating page.getArtifacts() et appeler ArtifactCollection.delete(artifact) supprimer les objets spécifiques sans modifier Le contenu de la documentation est en direct.
Page de Rendering
Le BmpDevice classe rendre les pages PDF directement aux fichiers d’image BMP en utilisant process(page, outputPath).Ceci est utile pour la génération de minéraux, le prévision des documents, ou les pipelines de traitement à l’image.