Rellenar formulario PDF Java

En estos tiempos modernos, se recopila una gran cantidad de datos mediante formularios y vale la pena mencionar los formularios PDF rellenables en este contexto. Son una forma eficiente de recopilar y organizar la información. Además, los formularios PDF rellenables ahora se utilizan como estándar en diferentes instituciones. Por ejemplo, algún tribunal de justicia o una empresa de adquisiciones puede usar de manera eficiente formularios PDF rellenables para estandarizar sus procedimientos. Para crear tales aplicaciones, Aspose.PDF for Java API es la API más adecuada. ¿Tienes curiosidad por saber por qué? Exploremos los siguientes casos de uso en los que trabajaremos con formularios PDF mediante programación.

Instalación

Puede dirigirse a la sección Nuevos lanzamientos donde puede configurar la API para enriquecer sus aplicaciones Java y permitirles procesar documentos PDF, o puede definir la dependencia en su aplicación Maven como se muestra a continuación:

Repositorio:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository

Dependencia:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.7</version>
</dependency>

Después de configurar con éxito la API, pasemos a los siguientes casos de uso:

Cree formularios PDF rellenables usando Java

Puede crear un formulario PDF rellenable en aplicaciones Java siguiendo los pasos a continuación:

  1. Crear un archivo PDF con una página en blanco
  2. Agregue el campo Cuadro de texto y el campo Botón de radio en la página
  3. Guarde el archivo PDF de salida

El fragmento de código a continuación muestra cómo crear un formulario PDF rellenable desde cero usando Java:

com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document();
com.aspose.pdf.Page page = pdfdoc.getPages().add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 740, 440, 770));
nameBox.setPartialName("nameBox1");
nameBox.getDefaultAppearance().setFontSize(10);
nameBox.setMultiline(true);
com.aspose.pdf.Border nameBorder = new com.aspose.pdf.Border(nameBox);
nameBorder.setWidth(1);
nameBox.setBorder(nameBorder);
nameBox.getCharacteristics().setBorder(java.awt.Color.BLACK);
nameBox.setColor(com.aspose.pdf.Color.fromRgb(Color.RED));
TextBoxField mrnBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 718, 440, 738));
mrnBox.setPartialName("Box1");
mrnBox.getDefaultAppearance().setFontSize(10);
com.aspose.pdf.Border mrnBorder = new com.aspose.pdf.Border(mrnBox);
mrnBorder.setWidth(1);
mrnBox.setBorder(mrnBorder);
mrnBox.getCharacteristics().setBorder(java.awt.Color.BLACK);
mrnBox.setColor(com.aspose.pdf.Color.fromRgb(Color.RED));
// Agregar campos de formulario a la primera página del documento PDF            
pdfdoc.getForm().add(nameBox, 1);
pdfdoc.getForm().add(mrnBox, 1);

//Agregue botones de radio en coordenadas de posición específicas en PDF
com.aspose.pdf.Table table = new com.aspose.pdf.Table();
//Establecer posición aquí
table.setLeft(200);
table.setTop(300);
table.setColumnWidths("120");
page.getParagraphs().add(table);
com.aspose.pdf.Row r1 = table.getRows().add();
com.aspose.pdf.Row r2 = table.getRows().add();
com.aspose.pdf.Cell c1 = r1.getCells().add();
com.aspose.pdf.Cell c2 = r2.getCells().add();
com.aspose.pdf.RadioButtonField rf = new com.aspose.pdf.RadioButtonField(page);
rf.setPartialName("radio");
pdfdoc.getForm().add(rf, 1);
com.aspose.pdf.RadioButtonOptionField opt1 = new com.aspose.pdf.RadioButtonOptionField();
com.aspose.pdf.RadioButtonOptionField opt2 = new com.aspose.pdf.RadioButtonOptionField();
opt1.setOptionName("Yes");
opt2.setOptionName("No");
opt1.setWidth(15);
opt1.setHeight(15);
opt2.setWidth(15);
opt2.setHeight(15);
rf.add(opt1);
rf.add(opt2);
opt1.setBorder(new com.aspose.pdf.Border(opt1));
opt1.getBorder().setWidth(1);
opt1.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid);
opt1.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt1.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt1.setCaption(new com.aspose.pdf.TextFragment("Yes"));
opt2.setBorder(new com.aspose.pdf.Border(opt1));
opt2.getBorder().setWidth(1);
opt2.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid);
opt2.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt2.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt2.setCaption(new com.aspose.pdf.TextFragment("No"));
c1.getParagraphs().add(opt1);
c2.getParagraphs().add(opt2);
pdfdoc.save(dataDir + "Fillable_PDF_Form.pdf");

Rellene, modifique o elimine campos de formulario en un PDF existente con Java

Hemos aprendido a crear un nuevo archivo PDF rellenable desde cero. Pasemos a escenarios donde se procesan documentos PDF existentes:

i) Complete un campo de formulario en un archivo PDF existente usando Java

Como hemos creado el formulario PDF en el ejemplo anterior, procedamos con el mismo documento y completemos los campos del formulario mediante programación usando Java. Puede completar el formulario creado con los siguientes pasos:

  1. Cargar archivo de entrada
  2. Rellene los valores en el campo Cuadro de texto
  3. Rellene los campos RadioButton seleccionando una opción
  4. Guardar formulario PDF

El fragmento de código a continuación muestra cómo llenar formularios rellenables usando Java:

// Abrir documento
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fillable_PDF_Form.pdf");

// Obtener los campos
TextBoxField textBoxField1 = (TextBoxField) pdfDocument.getForm().get("nameBox1");
TextBoxField textBoxField2 = (TextBoxField) pdfDocument.getForm().get("Box1");
// Rellenar los valores de los campos del formulario
textBoxField1.setValue("A quick brown fox jumped over a lazy dog.");
textBoxField2.setValue("A quick brown fox jumped over a lazy dog.");

// Obtener campo de botón de opción
RadioButtonField radioField = (RadioButtonField) pdfDocument.getForm().get("radio");
// Especifique el índice del botón de opción del grupo
radioField.setSelected(1);

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Guardar documento actualizado
pdfDocument.save(dataDir);

ii) Modificar un campo de formulario en un documento PDF usando Java

A veces necesitamos editar o actualizar valores de campo en un formulario PDF. Puede editar fácilmente un formulario PDF rellenable con los pasos a continuación:

  1. Inicializar PDF de entrada
  2. Obtener una referencia al campo de formulario por su nombre
  3. Editar el formulario PDF
  4. Guardar formulario PDF editado

El fragmento de código a continuación muestra cómo actualizar o editar un archivo PDF rellenable usando Java:

// Abrir documento
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// obtener un campo
TextBoxField textBoxField = (TextBoxField) pdfDocument.getForm().get("nameBox1");
// Modificar valor de campo
textBoxField.setValue("Changed Value");
textBoxField.setReadOnly(true);
dataDir = dataDir + "ModifyFormField.pdf";
// Guardar documento actualizado
pdfDocument.save(dataDir);

iii) Eliminar un campo de formulario en un archivo PDF existente usando Java

Puede eliminar o eliminar un campo de formulario fácilmente en sus aplicaciones Java. Puedes seguir los siguientes pasos:

  1. Inicializar un formulario PDF
  2. Eliminar el campo de formulario usando su nombre
  3. Guardar formulario PDF actualizado

El siguiente fragmento de código muestra cómo eliminar un campo de formulario de un formulario PDF usando Java:

// Abrir documento
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Eliminar un campo en particular por nombre
pdfDocument.getForm().delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Guardar documento modificado
pdfDocument.save(dataDir);

Conservar los derechos ampliados de los formularios PDF mediante Java

Puede notar que algunos formularios PDF tienen derechos extendidos. Se utilizan para evitar modificaciones en el contenido original y solo se permite el llenado de formularios. Los derechos ampliados de los archivos PDF pueden verse afectados cuando

Llene dicho formulario y guárdelo en diferentes ubicaciones del disco. Por lo tanto, necesitamos guardar dichos archivos de forma incremental con los pasos a continuación:

  1. Inicializar formulario PDF
  2. Rellena los campos
  3. Guarde el documento PDF lleno

El fragmento de código a continuación muestra cómo conservar los derechos extendidos al completar un formulario PDF, usando Java:

// Instanciar instancia de documento
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Obtener valores de todos los campos
for (com.aspose.pdf.Field formField : pdfDocument.getForm().getFields())
{
    // Si el nombre completo del campo contiene nameBox1, realice la operación
    if (formField.getFullName().contains("nameBox1"))
    {
        // Enviar campo de formulario como cuadro de texto
        TextBoxField textBoxField = (TextBoxField) formField;
        // Modificar valor de campo
        textBoxField.setValue("Preserve Extended Features");
    }
}
// Guardar el documento actualizado
pdfDocument.save();

Use JavaScript en formulario PDF usando Java

Puede completar los campos de formulario PDF rellenables usando Javascript con Aspose.PDF for Java. Debes seguir los siguientes pasos:

  1. Cargar documento PDF
  2. Agregar un campo en una ubicación de página específica
  3. Establecer JavaScript y abrir acción para el documento Guardar archivo PDF

El siguiente fragmento de código muestra cómo usar JavaScript en formularios PDF rellenables:

com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document();
pdfdoc.getPages().add();
TextBoxField textBoxField = new TextBoxField(pdfdoc.getPages().get_Item(1), new com.aspose.pdf.Rectangle(85, 750, 215, 770));
textBoxField.setPartialName("textbox1");
textBoxField.setValue("Text Box");
//TextBoxField.Border = nuevo borde();
com.aspose.pdf.Border border = new com.aspose.pdf.Border(textBoxField);
border.setWidth(2);
border.setDash(new com.aspose.pdf.Dash(1, 1));
textBoxField.setBorder(border);
textBoxField.getDefaultAppearance().setFontSize(10);
textBoxField.setColor(com.aspose.pdf.Color.fromRgb(java.awt.Color.GREEN));
// Agregar campo al documento
pdfdoc.getForm().add(textBoxField, 1);
String JS = "var w = this.getField('" + textBoxField.getPartialName() + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.setOpenAction(new com.aspose.pdf.JavascriptAction(JS));
pdfdoc.save(dataDir + "JS_Form.pdf");

Conclusión

Hemos aprendido a crear formularios PDF rellenables, así como a rellenar o editar los campos del formulario utilizando el entorno Java. Además, también hemos explorado la preservación de los derechos extendidos en documentos PDF además de usar JavaScript en una acción de documento PDF. En caso de cualquier inquietud o problema, no dude en contactarnos en Foro de soporte gratuito.

Ver también