Aspose.PDF FOSS för Java är ett MIT-licensierat Java bibliotek för att skapa och arbeta med PDF-dokument. Det tillhandahåller en omfattande Document klass som den centrala ingångspunkten, tillsammans med full täckning av annotationer, interaktiva formulärfält, sidmanipulation, metadata och PDF/A-efterlevnadsvalidering.
Biblioteket exponerar 527 klasser som täcker hela PDF-specifikationen: dokumentstruktur via Document, Page och PageCollection; annotationer genom Annotation-hierarkin (inklusive WidgetAnnotation, FreeTextAnnotation och HighlightAnnotation); interaktiva formulär med Form, ButtonField, CheckboxField och RadioButtonField; sidrendering via BmpDevice; och PDF/A-efterlevnadskontroll genom ActionRules och ActionFixes. Kryptering tillhandahålls via AESCipher i CBC-läge.
Lägg till Aspose.PDF FOSS i ditt Maven-projekt med groupId org.aspose och artifactId aspose-pdf. Biblioteket kräver Java 11 eller senare och är fullt MIT-licensierat. För företagsfunktioner och support, se Aspose.PDF for Java — Enterprise Product.
Document för att skapa nya PDF-dokument. Befintliga dokument kan nås via Document(filePath) eller Document(stream) konstruktorer.PageCollection. Varje Page exponerar MediaBox, CropBox, rotation, resurser och innehållsoperatorer.DocumentInfo och XmpMetadata.getParser(), getCatalog() och getTrailer().getEmbeddedFiles().Document och populera sidor.PdfFileEditor och Page API:n.Annotation-klassen är basen för alla annotationer; konkreta typer inkluderar WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation och UnderlineAnnotation.Document.getForm() för att räkna upp eller skapa ButtonField, CheckboxField och RadioButtonField instanser.AppearanceCharacteristics — kantfärg, bakgrund, rotation och bildtexter.FormEditor och FormElement för manipulation av formulär på högre nivå.ActionRules och ActionFixes.AESCipher med CBC‑läge (AESCipher.encrypt(key, data) och AESCipher.decrypt(key, data)).Artifact och ArtifactCollection API:er.PdfFileEditor.resizeContents() och ContentsResizeParameters.AnnotationRules och ActionRules.AESCipher för att kryptera datasektioner som är inbäddade i dokumentströmmar.Artifact objekt som representerar vattenstämplar och siddekorationer.ActionFixes och AnnotationFixes för att få befintliga dokument att uppfylla PDF/A-1b-arkivstandarder.Skapa ett nytt dokument, lägg till en sida och bifoga 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");
}
Lägg till en radioknappgrupp i ett dokumentformulär och välj ett värde programmässigt.
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");
}
Öppna ett befintligt dokument och läs media box-dimensionerna för den första sidan.
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);
}