Aspose.PDF FOSS for Java er et MIT-licenseret Java bibliotek til at oprette og arbejde med PDF-dokumenter. Det leverer en omfattende Document klasse som det centrale indgangspunkt, sammen med fuld dækning af annoteringer, interaktive formularfelter, sidehåndtering, metadata og PDF/A overholdelsesvalidering.
Biblioteket eksponerer 527 klasser, der dækker den fulde PDF-specifikation: dokumentstruktur via Document, Page og PageCollection; annotationer gennem Annotation-hierarkiet (inklusive WidgetAnnotation, FreeTextAnnotation og HighlightAnnotation); interaktive formularer med Form, ButtonField, CheckboxField og RadioButtonField; side-rendering via BmpDevice; og PDF/A-overholdelsestjek gennem ActionRules og ActionFixes. Kryptering leveres via AESCipher i CBC-tilstand.
Tilføj Aspose.PDF FOSS til dit Maven-projekt ved at bruge groupId org.aspose og artifactId aspose-pdf. Biblioteket kræver Java 11 eller senere og er fuldt MIT-licenseret. For enterprise-funktioner og support, se Aspose.PDF for Java — Enterprise Product.
Document klassen til at oprette nye PDF-dokumenter. Eksisterende dokumenter kan tilgås via Document(filePath) eller Document(stream) konstruktører.PageCollection. Hver Page eksponerer MediaBox, CropBox, rotation, ressourcer og indholdsoperatorer.DocumentInfo og XmpMetadata.getParser(), getCatalog() og getTrailer().getEmbeddedFiles().Document og udfylde sider.PdfFileEditor og det Page API.Annotation klasse er basen for alle annotationer; konkrete typer inkluderer WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation og UnderlineAnnotation.Document.getForm() for at tælle eller oprette ButtonField, CheckboxField og RadioButtonField forekomster.AppearanceCharacteristics — kantfarve, baggrund, rotation og billedtekster.FormEditor og FormElement til manipulation af formularer på højere niveau.ActionRules og ActionFixes.AESCipher ved brug af CBC-tilstand (AESCipher.encrypt(key, data) og AESCipher.decrypt(key, data)).Artifact og ArtifactCollection API’erne.PdfFileEditor.resizeContents() og ContentsResizeParameters.AnnotationRules og ActionRules.AESCipher til at kryptere datasektioner, der er indlejret i dokumentstrømme.Artifact objekter, der repræsenterer vandmærker og sideudsmykninger.ActionFixes og AnnotationFixes for at få eksisterende dokumenter til at opfylde PDF/A-1b arkivstandarder.Opret et nyt dokument, tilføj en side, og vedhæft en widget-annotation med 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");
}
Tilføj en radioknapgruppe til en dokumentformular og vælg en værdi programmatisk.
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");
}
Få adgang til et eksisterende dokument og læs media box‑dimensionerne på den første side.
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);
}