1. Productos
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Java

Aspose.PDF FOSS para Java

Crea y manipula documentos PDF desde Java — con anotaciones, campos de formulario, manipulación de páginas y cumplimiento PDF/A. Licencia MIT.

Biblioteca Java gratuita con licencia MIT para creación y manipulación de PDF

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.

Estructura del documento y gestión de páginas

  • Document API: Utilice la clase Document para crear nuevos documentos PDF. Los documentos existentes pueden accederse mediante los constructores Document(filePath) o Document(stream).
  • Gestión de páginas: Añadir, acceder y modificar páginas a través de PageCollection. Cada Page expone MediaBox, CropBox, rotación, recursos y operadores de contenido.
  • Metadata: Leer y escribir metadata del documento a través de DocumentInfo y XmpMetadata.
  • Estructura PDF: Acceda a los objetos PDF subyacentes a través de getParser(), getCatalog() y getTrailer().
  • Archivos incrustados: Administre colecciones de archivos incrustados con getEmbeddedFiles().

Escenarios Comunes de Procesamiento de Documentos

  • Generación de PDF: Construya documentos programáticamente creando un Document y rellenando páginas.
  • Análisis de documentos: Acceda a archivos existentes para inspección de metadatos o enumeración de campos de formulario.
  • Manipulación de páginas: Cambiar el tamaño, rotar o reordenar páginas usando PdfFileEditor y la Page API.
  • Flujos de trabajo por lotes: Aplicar transformaciones consistentes en varios documentos en canalizaciones del lado del servidor.

Anotaciones y campos de formulario

  • Jerarquía de anotaciones: La clase abstracta Annotation es la base para todas las anotaciones; los tipos concretos incluyen WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation y UnderlineAnnotation.
  • Formularios interactivos: Acceda al formulario del documento a través de Document.getForm() para enumerar o crear instancias de ButtonField, CheckboxField y RadioButtonField.
  • Apariencia del widget: Controla las propiedades visuales a través de AppearanceCharacteristics — color del borde, fondo, rotación y subtítulos.
  • Edición de formularios: Use FormEditor y FormElement para la manipulación de formularios a nivel superior.

Revisión y Colaboración de Documentos

  • Markup annotations: Añadir resaltado, subrayado o anotaciones de texto libre a los documentos para flujos de trabajo de revisión.
  • Formularios interactivos: Crea documentos rellenables con botones de opción, casillas de verificación y botones pulsadores para la captura de datos.
  • Extracción de datos del formulario: Leer los valores de los campos del formulario enviados para canalizaciones del lado del servidor.
  • Cumplimiento archivístico: Valide y corrija documentos para su archivado a largo plazo usando ActionRules y ActionFixes.

Seguridad y Operaciones de Contenido

  • Cifrado AES: Encripta y desencripta matrices de bytes de datos con AESCipher usando el modo CBC (AESCipher.encrypt(key, data) y AESCipher.decrypt(key, data)).
  • Gestión de artefactos: Identificar y manipular encabezados, pies de página, marcas de agua y imágenes de fondo a través de las APIs Artifact y ArtifactCollection.
  • Redimensionamiento de contenido: Ajuste el diseño del contenido de la página con PdfFileEditor.resizeContents() y ContentsResizeParameters.
  • Validación de cumplimiento: Validar las reglas de anotación y acción contra los estándares PDF/A usando AnnotationRules y ActionRules.

Casos de uso de seguridad de documentos

  • Cargas útiles cifradas: Use AESCipher para cifrar secciones de datos incrustadas en flujos de documentos.
  • Protección de documentos: Aplicar configuraciones de seguridad para el control de acceso en flujos de trabajo de cumplimiento.
  • Watermarking: Detectar y gestionar objetos Artifact que representan marcas de agua y decoraciones de página.
  • Cumplimiento archivístico: Ejecute ActionFixes y AnnotationFixes para que los documentos existentes cumplan con los estándares archivísticos PDF/A-1b.

Crear un documento con anotación de widget

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");
}

Crear un formulario con botones de opción

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");
}

Inspeccionar dimensiones de página del documento

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);
}
  

Recursos de soporte y aprendizaje

 Español