Aspose.PDF FOSS per a Java és una biblioteca Java amb llicència MIT per crear i treballar amb documents PDF. Proporciona una classe Document completa com a punt d’entrada central, juntament amb una cobertura completa d’anotacions, camps de formulari interactius, manipulació de pàgines, metadades i validació de compliment PDF/A.
La biblioteca exposa 527 classes que cobreixen l’especificació completa de PDF: estructura del document a través de Document, Page i PageCollection; anotacions mitjançant la jerarquia Annotation (incloent WidgetAnnotation, FreeTextAnnotation i HighlightAnnotation); formularis interactius amb Form, ButtonField, CheckboxField i RadioButtonField; renderització de pàgines a través de BmpDevice; i comprovació de compliment PDF/A a través de ActionRules i ActionFixes. El xifratge es proporciona a través de AESCipher en mode CBC.
Afegeix Aspose.PDF FOSS al teu projecte Maven utilitzant groupId org.aspose i artifactId aspose-pdf. La biblioteca requereix Java 11 o posterior i és totalment MIT-licensed. Per a funcions i suport empresarials, consulta Aspose.PDF for Java — Enterprise Product.
Document per crear nous documents PDF. Els documents existents es poden accedir mitjançant els constructors Document(filePath) o Document(stream).PageCollection. Cada Page exposa MediaBox, CropBox, rotació, recursos i operadors de contingut.DocumentInfo i XmpMetadata.getParser(), getCatalog() i getTrailer().getEmbeddedFiles().Document i omplint les pàgines.PdfFileEditor i l’API Page.Annotation és la base per a totes les anotacions; els tipus concrets inclouen WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation i UnderlineAnnotation.Document.getForm() per enumerar o crear instàncies de ButtonField, CheckboxField i RadioButtonField.AppearanceCharacteristics — color de la vora, fons, rotació i llegendes.FormEditor i FormElement per a la manipulació de formularis a nivell superior.ActionRules i ActionFixes.AESCipher utilitzant el mode CBC (AESCipher.encrypt(key, data) i AESCipher.decrypt(key, data)).Artifact i ArtifactCollection.PdfFileEditor.resizeContents() i ContentsResizeParameters.AnnotationRules i ActionRules.AESCipher per encriptar les seccions de dades incrustades en fluxos de documents.Artifact que representen marques d’aigua i decoracions de pàgina.ActionFixes i AnnotationFixes per fer que els documents existents compleixin les normes d’arxiu PDF/A-1b.Creeu un document nou, afegiu una pàgina i adjunteu una anotació de widget amb estil.
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");
}
Afegeix un grup de botons d’opció a un formulari de document i selecciona un valor programàticament.
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");
}
Accediu a un document existent i llegiu les dimensions de la media box de la primera pàgina.
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);
}