Rellenar formulario PDF

Los formularios PDF se utilizan con frecuencia para recopilar datos e información. Por ejemplo, los cuestionarios suelen estar diseñados para recopilar respuestas con fines de encuesta. Interactuamos con diferentes formularios PDF rellenables en el mundo digital actual. Teniendo en cuenta el enorme alcance y la importancia de los formularios PDF, Aspose.PDF for .NET API admite muchas funciones para trabajar con formularios PDF. Exploremos los siguientes casos de uso utilizando el lenguaje C# en este artículo:

Cree formularios PDF rellenables usando C#

Puede crear un formulario PDF rellenable desde cero utilizando Aspose.PDF for .NET API. Aquí consideraremos el ejemplo básico de agregar dos instancias de TextBoxField y RadioButton. Sin embargo, uno de los TextBoxField es de una sola línea mientras que el otro es de varias líneas. A continuación se detallan los pasos para crear un formulario en documento PDF:

  1. Crear una instancia de la clase Document
  2. Agregar una página en blanco en un documento PDF
  3. Agregue el campo Cuadro de texto en el formulario
  4. Establezca diferentes propiedades de los campos, incluida la fuente, el borde, etc.
  5. Agregue Botón de opción en el formulario
  6. Guardar documento PDF

El siguiente fragmento de código muestra cómo crear un formulario en PDF usando C#:

Document pdfdoc = new Document();
Page page = pdfdoc.Pages.Add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 740, 440, 770));
nameBox.PartialName = "nameBox1";
nameBox.DefaultAppearance.FontSize = 10;
nameBox.Multiline = true;
Border nameBorder = new Border(nameBox);
nameBorder.Width = 1;
nameBox.Border = nameBorder;
nameBox.Characteristics.Border = System.Drawing.Color.Black;
nameBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
TextBoxField mrnBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 718, 440, 738));
mrnBox.PartialName = "Box1";
mrnBox.DefaultAppearance.FontSize = 10;
Border mrnBorder = new Border(mrnBox);
mrnBorder.Width = 1;
mrnBox.Border = mrnBorder;
mrnBox.Characteristics.Border = System.Drawing.Color.Black;
mrnBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
// Agregar campos de formulario a la primera página del documento PDF            
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);

//Agregue botones de radio en coordenadas de posición específicas en PDF
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//Establecer posición aquí
table.Left = 200;
table.Top = 300;
table.ColumnWidths = "120";
page.Paragraphs.Add(table);
Aspose.Pdf.Row r1 = table.Rows.Add();
Aspose.Pdf.Row r2 = table.Rows.Add();
Aspose.Pdf.Cell c1 = r1.Cells.Add();
Aspose.Pdf.Cell c2 = r2.Cells.Add();
RadioButtonField rf = new RadioButtonField(page);
rf.PartialName = "radio";
pdfdoc.Form.Add(rf, 1);
RadioButtonOptionField opt1 = new RadioButtonOptionField();
RadioButtonOptionField opt2 = new RadioButtonOptionField();
opt1.OptionName = "Yes";
opt2.OptionName = "No";
opt1.Width = 15;
opt1.Height = 15;
opt2.Width = 15;
opt2.Height = 15;
rf.Add(opt1);
rf.Add(opt2);
opt1.Border = new Border(opt1);
opt1.Border.Width = 1;
opt1.Border.Style = BorderStyle.Solid;
opt1.Characteristics.Border = System.Drawing.Color.Black;
opt1.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt1.Caption = new TextFragment("Yes");
opt2.Border = new Border(opt1);
opt2.Border.Width = 1;
opt2.Border.Style = BorderStyle.Solid;
opt2.Characteristics.Border = System.Drawing.Color.Black;
opt2.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt2.Caption = new TextFragment("No");
c1.Paragraphs.Add(opt1);
c2.Paragraphs.Add(opt2);
pdfdoc.Save(dataDir + "Fillable_PDF_Form.pdf");

La siguiente captura de pantalla muestra un documento PDF de salida que contiene campos de formulario como se especifica en el fragmento de código anterior:

formulario PDF

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

Como hemos explorado la creación de un formulario en un documento PDF usando C#, la API de Aspose.PDF for .NET también admite el trabajo con formularios PDF existentes. Discutamos las siguientes características de la API.

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

Para completar los formularios PDF, continuaremos con el documento PDF que se creó en el ejemplo anterior. A continuación se muestran los pasos para completar los campos en un documento PDF existente:

  1. Cargar documento PDF de origen
  2. Obtener Cuadro de texto Campos y valores de relleno
  3. Obtenga campo de botón de radio y seleccione una opción del grupo
  4. Guardar formulario PDF rellenado

El siguiente fragmento de código sigue estos pasos y explica cómo completar los campos en un documento PDF usando C#:

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

// Obtener los campos
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// Rellenar los valores de los campos del formulario
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";

// Obtener campo de botón de opción
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// Especifique el índice del botón de opción del grupo
radioField.Selected = 1;

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

La siguiente captura de pantalla muestra campos de formulario llenos de formulario PDF usando C#:

PDF rellenable

ii) Modificar un campo de formulario en un documento PDF usando C#

A veces, es posible que deba cambiar el valor en cualquier campo de un formulario PDF. Cambiar un valor en un campo de formulario es un caso de uso básico que se puede lograr con los pasos a continuación:

  1. Cargue el formulario PDF
  2. Obtener un campo específico usando su nombre
  3. Modificar valor de campo
  4. Guarde el documento PDF actualizado

El siguiente fragmento de código muestra cómo cambiar un valor en un campo de formulario de un documento PDF:

// Abrir documento
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// obtener un campo
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// Modificar valor de campo
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// Guardar documento actualizado
pdfDocument.Save(dataDir);

Cabe señalar aquí que no solo puede cambiar el valor del formulario, sino que también se pueden actualizar otras propiedades. Por ejemplo, el campo se marcó como de solo lectura en el fragmento de código anterior.

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

Ya hemos aprendido sobre cómo agregar y completar campos de formulario PDF. Ahora exploremos la eliminación de un campo de formulario. Debes seguir los siguientes pasos:

  1. Cargue el documento PDF
  2. Llamar al método Delete con el nombre del campo del formulario
  3. Guardar documento PDF

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

// Abrir documento
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Eliminar un campo en particular por nombre
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Guardar documento modificado
pdfDocument.Save(dataDir);

Conservar los derechos ampliados de los formularios PDF con C#

Un formulario PDF puede tener derechos ampliados, también denominados funciones ampliadas, que le gustaría conservar durante la manipulación del formulario. Debe guardarlo de forma incremental mientras sigue los pasos a continuación:

  • Cargue el documento PDF en Stream
  • trabajar con formulario
  • Guarde el archivo sin ningún parámetro.

El siguiente fragmento de código de C# explica cómo conservar los derechos ampliados del formulario PDF:

// Lea el formulario PDF de origen con FileAccess de lectura y escritura.
// Necesitamos permiso de lectura y escritura porque después de la modificación,
// Necesitamos guardar los contenidos actualizados en el mismo documento/archivo.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// Instanciar instancia de documento
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// Obtener valores de todos los campos
foreach (Field formField in pdfDocument.Form)
{
    // Si el nombre completo del campo contiene A1, realice la operación
    if (formField.FullName.Contains("nameBox1"))
    {
        // Enviar campo de formulario como cuadro de texto
        TextBoxField textBoxField = formField as TextBoxField;
        // Modificar valor de campo
        textBoxField.Value = "Preserve Extended Features";
    }
}
// Guarde el documento actualizado en guardar FileStream
pdfDocument.Save();
// Cierre el objeto File Stream
fs.Close();

Use JavaScript en formulario PDF usando C#

Puede usar JavaScript en campos de formulario PDF con Aspose.PDF for .NET API. Sigamos los siguientes pasos para lograr este requisito:

  1. Iniciar una instancia de la clase Documento
  2. Agregue un TextBoxField en la primera página en coordenadas de página específicas
  3. Configurar JavaScript
  4. Especificar acción de documento
  5. Guardar documento PDF

El siguiente fragmento de código muestra cómo agregar JavaScript en formato PDF usando C#:

Aspose.Pdf.Document pdfdoc = new Aspose.Pdf.Document();
pdfdoc.Pages.Add();
Aspose.Pdf.Forms.TextBoxField textBoxField = new Aspose.Pdf.Forms.TextBoxField(pdfdoc.Pages[1], new Aspose.Pdf.Rectangle(85, 750, 215, 770));
textBoxField.PartialName = "textbox1";
textBoxField.Value = "Text Box";
//TextBoxField.Border = nuevo borde();
Border border = new Border(textBoxField);
border.Width = 2;
border.Dash = new Dash(1, 1);
textBoxField.Border = border;
textBoxField.DefaultAppearance.FontSize = 10;
textBoxField.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
// Agregar campo al documento
pdfdoc.Form.Add(textBoxField, 1);
string JS = @"var w = this.getField('" + textBoxField.PartialName + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.OpenAction = new JavascriptAction(JS);
pdfdoc.Save(dataDir + "JS_Form.pdf");

El JavaScript obtiene la fecha y hora actual del sistema cuando se abre el documento PDF y ese valor se completa en un cuadro de texto.

Conclusión

En este artículo, hemos aprendido diferentes aspectos del trabajo con formularios en documentos PDF. Crear, completar o editar formularios PDF es simple con Aspose.PDF for .NET API. La API ofrece muchas características interesantes para trabajar con diferentes archivos. Háganos saber sus comentarios o sugerencias a través del Foro de soporte gratuito.

Ver también