Aspose.PDF FOSS voor Java is een MIT-gelicentieerde Java bibliotheek voor het maken en werken met PDF-documenten. Het biedt een uitgebreide Document klasse als het centrale toegangspunt, samen met volledige dekking van annotaties, interactieve formuliervelden, paginamanipulatie, metadata en PDF/A-conformiteitsvalidatie.
De bibliotheek biedt 527 klassen die de volledige PDF-specificatie dekken: documentstructuur via Document, Page en PageCollection; annotaties via de Annotation hiërarchie (inclusief WidgetAnnotation, FreeTextAnnotation en HighlightAnnotation); interactieve formulieren met Form, ButtonField, CheckboxField en RadioButtonField; paginaverwerking via BmpDevice; en PDF/A-conformiteitscontrole via ActionRules en ActionFixes. Versleuteling wordt geleverd via AESCipher in CBC-modus.
Voeg Aspose.PDF FOSS toe aan je Maven‑project met groupId org.aspose en artifactId aspose-pdf. De bibliotheek vereist Java 11 of hoger en is volledig MIT‑gelicentieerd. Voor enterprise‑functies en ondersteuning, zie Aspose.PDF for Java — Enterprise Product.
Document klasse om nieuwe PDF‑documenten te maken. Bestaande documenten kunnen worden benaderd via Document(filePath) of Document(stream) constructors.PageCollection. Elke Page biedt MediaBox, CropBox, rotatie, resources en content-operatoren.DocumentInfo en XmpMetadata.getParser(), getCatalog() en getTrailer().getEmbeddedFiles().Document te maken en pagina’s te vullen.PdfFileEditor en de Page API.Annotation klasse is de basis voor alle annotaties; concrete types omvatten WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation en UnderlineAnnotation.Document.getForm() om ButtonField, CheckboxField en RadioButtonField exemplaren te enumereren of te maken.AppearanceCharacteristics — randkleur, achtergrond, rotatie en bijschriften.FormEditor en FormElement voor manipulatie van formulieren op hoger niveau.ActionRules en ActionFixes.AESCipher met behulp van CBC-modus (AESCipher.encrypt(key, data) en AESCipher.decrypt(key, data)).Artifact en ArtifactCollection API’s.PdfFileEditor.resizeContents() en ContentsResizeParameters.AnnotationRules en ActionRules.AESCipher om gegevenssecties die in documentstreams zijn ingebed te versleutelen.Artifact objecten die watermerken en paginadecoraties vertegenwoordigen.ActionFixes en AnnotationFixes uit om bestaande documenten te laten voldoen aan de PDF/A-1b archiefnormen.Maak een nieuw document, voeg een pagina toe en koppel een widget annotation met styling.
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");
}
Voeg een radioknopgroep toe aan een documentformulier en selecteer een waarde programmatisch.
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");
}
Open een bestaand document en lees de afmetingen van de mediabox van de eerste pagina.
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);
}