Introducción
Aspose.PDF FOSS for Java is an MIT-licensed Java library for creating and manipulating Documentos PDF. está disponible en GitHub bajo la licencia MIT y no requiere clave API La biblioteca exhibe 527 clases que cubren el completo PDF. especificaciones desde la estructura del documento a las anotaciones, formularios interactivos, renderización de página, operaciones de criptografía.
La biblioteca se construye alrededor de la Document de la clase, que es el punto de entrada central para todas las operaciones PDF. Crear un nuevo documento, acceder a páginas mediante PageCollection, Leer metadatos a través de DocumentInfo,o navegar por el catálogo a través de getCatalog() y getTrailer() Todo comienza con una Document de instancia.
Inicio rápido
Añade la dependencia de Maven a tu pom.xml:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>0.1.0-alpha</version>
</dependency>
La biblioteca organiza todas las clases de API públicas en tres paquetes.Añadir estas declaraciones de paquete a cualquier archivo de fuente Java que utilice la API:
// Core API — Document, Page, Annotation, Form, etc.
org.aspose.pdf.*
// Annotation subclasses
org.aspose.pdf.annotations.*
// Facade classes — PdfFileEditor, PdfAnnotationEditor, etc.
org.aspose.pdf.facades.*
Aspose.PDF FOSS for Java requires Java 11 or later. The source code and issue tracker están disponibles en https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.
Empezando a
Crea y salva un documento mínimo para verificar la configuración:
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
doc.save("output.pdf");
System.out.println("Pages: " + pages.getCount());
}
El Document El constructor de clase acepta un camino o flujo de archivos para acceder a los existentes. archivos, o se puede llamar con ningún argumento para crear un documento blanco. A través de PageCollection,Accesible a través de Document.getPages().Cada uno Page Exponen su Geometría por medio de getMediaBox(), getCropBox(),y, getRotate(),y que le da acceso a recursos, operadores de contenidos y anotaciones.
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
// page.getMediaBox() -> Rectangle with width/height
// page.getAnnotations() -> AnnotationCollection
doc.save("output.pdf");
}
El PdfFileEditor La clase ofrece concatenate() para la combinación de varios documentos y resizeContents() con ContentsResizeParameters para ajustar el contenido de la configuración dentro del límites de la página existente.
Anotaciones
Aspose.PDF FOSS for Java implements the full PDF annotation hierarchy rooted at the abstracto Annotation Tipos de anotación: Los tipos de Anotaciones incluyen WidgetAnnotation Para Forma de control, FreeTextAnnotation para los callouts de texto, HighlightAnnotation y UnderlineAnnotation para el marcado, y CircleAnnotation y CaretAnnotation Para Notas gráficas.
Cada notación está asociada a una Page y a Rectangle Definición de su ubicación. Las propiedades visuales se controlan a través de AppearanceCharacteristics,que exponen setBorder(), setBackground(), setRotate(),y, setCaption() El método. anotaciones Se añade a una página mediante page.getAnnotations().add(annotation).
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.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("annotated.pdf");
}
Interactivos en forma de campo
El Form clase, accesible a través de Document.getForm(), gestiona todos los campos de AcroForm. el La biblioteca ofrece ButtonField, CheckboxField, RadioButtonField, TextBoxField, ComboBoxField,y, ListBoxField para la construcción de formas cumplimentables. FormEditor Es una clase de facada para trabajar con campos de formulario en un documento vinculado.
Los grupos de botones de radio se crean con RadioButtonField,que acepta una página y apoya addOption() para añadir opciones selectivas, cada una asociada con un Rectangle Por su visualidad La ubicación. el setValue() El método selecciona programáticamente una opción.
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
RadioButtonField radio = new RadioButtonField(page);
radio.setPartialName("answer");
radio.addOption("Yes", new Rectangle(50, 50, 70, 70));
radio.addOption("No", new Rectangle(50, 80, 70, 100));
doc.getForm().add(radio, 1);
radio.setValue("Yes");
doc.save("form.pdf");
}
Etiquetas: AES Encryption
El AESCipher Clase implementa la criptografía AES en modo CBC para el cifrado y decriptado El archivo de datos está incorporado en documentos PDF. AESCipher.encrypt(key, data) Devolver la cifrado en el texto cipher, y AESCipher.decrypt(key, data) Recuerda el texto original de la reclamación. Para el control exprés IV, encryptWithIV(key, iv, plaintext) y decryptWithIV(key, iv, cipherText) Proporcionar una operación determinista.
PDF/A Validación de la conformidad
La biblioteca incluye ActionRules y ActionFixes para la validación de conformidad PDF/A y corrección . ActionRules.validate() verifica las acciones prohibidas en el catálogo, página y Entra en el widget. ActionFixes Se ofrecen métodos como removeCatalogAA(), removePageAA(),y, removeWidgetAA() - Corregir diccionarios de acción no conformes. De igual manera, AnnotationRules y AnnotationFixes Compatibilidad con la anotación.
Artículos: Capas, piezas y marcos de agua
El Artifact modelos de clase decoraciones de página como cabezas, pies, marcos de agua, y Imágenes de fondo. ArtifactCollection,accesible a través de los recursos de la página, permite el enumero y la eliminación de objetos artesanales.Iterating page.getArtifacts() y llamando ArtifactCollection.delete(artifact) Elimina los objetos sin modificarlos. El contenido de los documentos fluye directamente.
Página de rendimiento
El BmpDevice clase rendir páginas PDF directamente a los archivos de imagen BMP utilizando process(page, outputPath).Esto es útil para la generación de miniaturas, previsión del documento, o tubos de procesamiento basados en imágenes.