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

Aspose.PDF FOSS for 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 con licencia MIT gratuita 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 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.

Agrega Aspose.PDF FOSS a tu proyecto Maven usando groupId org.aspose y artifactId aspose-pdf. La biblioteca requiere Java 11 o posterior y está totalmente bajo licencia MIT. Para características empresariales y soporte, consulta Aspose.PDF for Java — Enterprise Product.

Estructura del documento y gestión de páginas

  • Documento API: Utilice la clase Document para crear nuevos documentos PDF. Los documentos existentes pueden accederse mediante Document(filePath) o Document(stream) constructores.
  • Gestión de páginas: Agregue, acceda y modifique páginas mediante PageCollection. Cada Page expone MediaBox, CropBox, rotación, recursos y operadores de contenido.
  • Metadatos: Lea y escriba metadatos del documento mediante 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 para el tratamiento de documentos

  • ** Generación de PDF:** Construir documentos programáticamente mediante la creación de un Document y llenar páginas.
  • Análisis de documentos: Acceda a los archivos existentes para la inspección de metadatos o el enumeración de campos del formulario.
  • Manipulación de páginas: Redimensionar, rotar o reordenar las págines utilizando PdfFileEditor y la API Page.
  • ** Flujos de trabajo por lotes:** Aplicar transformaciones consistentes en múltiples documentos en las tuberías del lado del servidor.

Anotativas y campos de formulario

  • ** Jerarquía de anotaciones:** La clase abstracta Annotation es la base para todas las anotación; 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 las instancias 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.
  • ** Editación de formularios:** Utilice FormEditor y FormElement para la manipulación del formulario en un nivel superior.

Revisión y colaboración de documentos

  • ** Anotativas de marcado:** Agregar notas en resaltado, subrayadas o con texto libre a los documentos para revisar flujos de trabajo.
  • Formas interactivas: Crear documentos que puedan rellenarse con botones de radio, casillas y pulsadores para la captura de datos.
  • Extracción de datos del formulario: Leer los valores de los campos del Formulario enviados para las tuberías en el lado del servidor.
  • Cumplimiento de los archivos: Valida y fija documentos para el archivo a largo plazo utilizando ActionRules y ActionFixes.

Operaciones de seguridad y contenido

  • Encriptación AES: Encriptar y descifrar matrices de bytes con AESCipher utilizando 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 e imágenes de fondo a través de las API Artifact y ArtifactCollection.
  • ** Redimensionamiento del contenido:** Ajustar el diseño de contenidos de la página con PdfFileEditor.resizeContents() y ContentsResizeParameters.
  • ** Validación de la conformidad:** Validar las reglas de anotación y acción con respecto a los estándares PDF/A utilizando AnnotationRules y ActionRules.

Casos de uso para la seguridad del documento

  • ** Cargas útiles cifradas:** Utilice AESCipher para encriptar secciones de datos incrustados en flujos de documentos.
  • Protección de documentos: Aplicar la configuración de seguridad para el control del acceso en los flujos de trabajo relacionados con la conformidad.
  • Marcas de agua: Detectar y gestionar los objetos Artifact que representan marcas d’agua y decoraciones de páginas.
  • Cumplimiento de los archivos: Ejecutar ActionFixes y AnnotationFixes para que los documentos existentes cumplan con las normas de archivo PDF/A-1b.

Crear un documento con anotación de widget

Crear un nuevo documento, añadir una página y adjuntar una anotación de widget con estilo.

try (Document doc = new Document()) ```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 radio

Añadir un grupo de botones radio a un formulario del 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 las dimensiones de la página del documento

Acceda a un documento existente y lea las dimensiones de la caja de medios de comunicación de su 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