Aspose.PDF FOSS for Java er et MIT-lisensiert Java bibliotek for å lage og arbeide med PDF-dokumenter. Det gir en omfattende Document klasse som det sentrale inngangspunktet, sammen med full dekning av annotasjoner, interaktive skjemafelter, sidehåndtering, metadata og PDF/A-samsvarvalidering.
Biblioteket eksponerer 527 klasser som dekker hele PDF-spesifikasjonen: dokumentstruktur via Document, Page og PageCollection; annotasjoner gjennom Annotation-hierarkiet (inkludert WidgetAnnotation, FreeTextAnnotation og HighlightAnnotation); interaktive skjemaer med Form, ButtonField, CheckboxField og RadioButtonField; sidegjengivelse via BmpDevice; og PDF/A-samsvarskontroll gjennom ActionRules og ActionFixes. Kryptering leveres via AESCipher i CBC-modus.
Legg til Aspose.PDF FOSS i Maven-prosjektet ditt ved å bruke groupId org.aspose og artifactId aspose-pdf. Biblioteket krever Java 11 eller nyere og er fullt MIT-licensiert. For bedriftsfunksjoner og støtte, se Aspose.PDF for Java — Enterprise Product.
Document-klassen til å opprette nye PDF-dokumenter. Eksisterende dokumenter kan nås via Document(filePath) eller Document(stream)-konstruktørene.PageCollection. Hver Page eksponerer MediaBox, CropBox, rotasjon, ressurser og innholdsoperatører.DocumentInfo og XmpMetadata.getParser(), getCatalog() og getTrailer().getEmbeddedFiles().Document og populere sider.PdfFileEditor og Page API.Annotation klassen er basen for alle annotasjoner; konkrete typer inkluderer WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation og UnderlineAnnotation.Document.getForm() for å oppregne eller opprette ButtonField, CheckboxField og RadioButtonField forekomster.AppearanceCharacteristics — kantfarge, bakgrunn, rotasjon og bildetekster.FormEditor og FormElement for manipulering av skjema på høyere nivå.ActionRules og ActionFixes.AESCipher ved bruk av CBC-modus (AESCipher.encrypt(key, data) og AESCipher.decrypt(key, data)).Artifact og ArtifactCollection API-er.PdfFileEditor.resizeContents() og ContentsResizeParameters.AnnotationRules og ActionRules.AESCipher for å kryptere dataseksjoner som er innebygd i dokumentstrømmer.Artifact objekter som representerer vannmerker og sidepynt.ActionFixes og AnnotationFixes for å få eksisterende dokumenter til å oppfylle PDF/A-1b arkivstandarder.Opprett et nytt dokument, legg til en side, og fest 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");
}
Legg til en radioknappgruppe i et dokumentskjema og velg en verdi 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å tilgang til et eksisterende dokument og les media box‑dimensjonene på den første siden.
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);
}