Aspose.PDF FOSS für Java ist eine MIT-lizenzierte Java Bibliothek zum Erstellen und Arbeiten mit PDF-Dokumenten. Sie bietet eine umfassende Document Klasse als zentralen Einstiegspunkt, zusammen mit vollständiger Unterstützung von Anmerkungen, interaktiven Formularfeldern, Seitenmanipulation, Metadaten und PDF/A-Konformitätsvalidierung.
Die Bibliothek stellt 527 Klassen zur Verfügung, die die vollständige PDF‑Spezifikation abdecken: Dokumentenstruktur über Document, Page und PageCollection; Anmerkungen über die Annotation‑Hierarchie (einschließlich WidgetAnnotation, FreeTextAnnotation und HighlightAnnotation); interaktive Formulare mit Form, ButtonField, CheckboxField und RadioButtonField; Seitenrendering über BmpDevice; und die PDF/A‑Konformitätsprüfung über ActionRules und ActionFixes. Verschlüsselung wird über AESCipher im CBC‑Modus bereitgestellt.
Fügen Sie Aspose.PDF FOSS zu Ihrem Maven‑Projekt hinzu, indem Sie groupId org.aspose und artifactId aspose-pdf verwenden. Die Bibliothek erfordert Java 11 oder höher und ist vollständig MIT‑lizenziert. Für Unternehmensfunktionen und Support siehe Aspose.PDF for Java — Enterprise Product.
Document Klasse, um neue PDF-Dokumente zu erstellen. Auf vorhandene Dokumente kann über die Document(filePath) oder Document(stream) Konstruktoren zugegriffen werden.PageCollection. Jeder Page stellt MediaBox, CropBox, Drehung, Ressourcen und Inhaltsoperatoren bereit.DocumentInfo und XmpMetadata.getParser(), getCatalog() und getTrailer() auf die zugrunde liegenden PDF-Objekte zu.getEmbeddedFiles().Document erstellen und Seiten befüllen.PdfFileEditor und der Page API.Annotation Klasse ist die Basis für alle Anmerkungen; konkrete Typen umfassen WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation und UnderlineAnnotation.Document.getForm() auf das Dokumentformular zu, um ButtonField, CheckboxField und RadioButtonField Instanzen aufzuzählen oder zu erstellen.AppearanceCharacteristics — Randfarbe, Hintergrund, Drehung und Beschriftungen.FormEditor und FormElement für die Manipulation von Formularen auf höherer Ebene.ActionRules und ActionFixes.AESCipher im CBC-Modus (AESCipher.encrypt(key, data) und AESCipher.decrypt(key, data)) verschlüsseln und entschlüsseln.Artifact- und ArtifactCollection-APIs.PdfFileEditor.resizeContents() und ContentsResizeParameters an.AnnotationRules und ActionRules.AESCipher, um Datenabschnitte, die in Dokumentenströmen eingebettet sind, zu verschlüsseln.Artifact-Objekten, die Wasserzeichen und Seitenverzierungen darstellen.ActionFixes und AnnotationFixes aus, damit vorhandene Dokumente den PDF/A-1b-Archivierungsstandards entsprechen.Erstellen Sie ein neues Dokument, fügen Sie eine Seite hinzu und fügen Sie eine Widget-Annotation mit Stil hinzu.
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");
}
Fügen Sie einem Dokumentformular eine Radio‑Button‑Gruppe hinzu und wählen Sie einen Wert programmgesteuert aus.
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");
}
Greifen Sie auf ein vorhandenes Dokument zu und lesen Sie die MediaBox‑Abmessungen der ersten Seite.
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);
}