Aspose.PDF FOSS para Java es una biblioteca Java bajo licencia MIT para crear y trabajar con documentos PDF. Proporciona una clase Document completa como punto de entrada central, junto con una cobertura total de anotaciones, campos de formulario interactivos, manipulación de páginas, metadatos y validación de cumplimiento PDF/A.
La biblioteca expone 527 clases que cubren la especificación completa de PDF: estructura del documento a través de Document, Page y PageCollection; anotaciones mediante la jerarquía Annotation (incluyendo WidgetAnnotation, FreeTextAnnotation y HighlightAnnotation); formularios interactivos con Form, ButtonField, CheckboxField y RadioButtonField; renderizado de páginas a través de BmpDevice; y verificación de cumplimiento PDF/A mediante ActionRules y ActionFixes. El cifrado se proporciona mediante AESCipher en modo CBC.
Agregue Aspose.PDF FOSS a su proyecto Maven usando groupId org.aspose y artifactId aspose-pdf. La biblioteca requiere Java 11 o posterior y está totalmente con licencia MIT. Para funciones empresariales y soporte, consulte Aspose.PDF for Java — Enterprise Product.
Document para crear nuevos documentos PDF. Los documentos existentes pueden accederse mediante los constructores Document(filePath) o Document(stream).PageCollection. Cada Page expone MediaBox, CropBox, rotación, recursos y operadores de contenido.DocumentInfo y XmpMetadata.getParser(), getCatalog() y getTrailer().getEmbeddedFiles().Document y rellenando páginas.PdfFileEditor y la Page API.Annotation es la base para todas las anotaciones; los tipos concretos incluyen WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation y UnderlineAnnotation.Document.getForm() para enumerar o crear instancias de ButtonField, CheckboxField y RadioButtonField.AppearanceCharacteristics — color del borde, fondo, rotación y subtítulos.FormEditor y FormElement para la manipulación de formularios a nivel superior.ActionRules y ActionFixes.AESCipher usando el modo CBC (AESCipher.encrypt(key, data) y AESCipher.decrypt(key, data)).Artifact y ArtifactCollection.PdfFileEditor.resizeContents() y ContentsResizeParameters.AnnotationRules y ActionRules.AESCipher para cifrar secciones de datos incrustadas en flujos de documentos.Artifact que representan marcas de agua y decoraciones de página.ActionFixes y AnnotationFixes para que los documentos existentes cumplan con los estándares archivísticos PDF/A-1b.Cree un nuevo documento, agregue una página y adjunte una anotación de widget con estilo.
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");
}
Agregar un grupo de botones de opción a un formulario de documento y seleccionar un valor programáticamente.
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");
}
Acceda a un documento existente y lea las dimensiones del cuadro de medios 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);
}