Rellene y lea formularios XFA usando C#

Adobe introdujo formularios interactivos y dinámicos llamados formularios XFA. XFA significa Arquitectura de formularios XML. El formulario XFA es similar a un archivo HTML. Contiene campos que se pueden completar y determina el diseño o la apariencia como un formulario incrustado dentro de los documentos PDF. En este artículo, aprenderemos cómo llenar y leer formularios XFA usando C#.

En este artículo se tratarán los siguientes temas:

API de C# para leer y completar formularios XFA

Para trabajar con formularios XFA PDF, usaremos Aspose.PDF para .NET API. Nos permite generar, modificar, convertir, renderizar, proteger e imprimir documentos admitidos sin usar Adobe Acrobat. Descargue la DLL de la API o instálela usando NuGet.

PM> Install-Package Aspose.Pdf

Llenar formularios XFA usando C#

Podemos completar formularios XFA mediante programación siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue un archivo de formulario XFA utilizando la clase Documento.
  2. Obtenga los nombres de los campos de formulario XFA cargados.
  3. Establecer valores de campo.
  4. Finalmente, llame al método Save(). Toma la ruta del archivo de salida como argumento.

El siguiente ejemplo de código muestra cómo llenar un formulario XFA usando C#.

// Este ejemplo de código demuestra cómo llenar un formulario XFA.
// Cargar formulario XFA
Document doc = new Document(@"C:\Files\PDF\FillXFAFields.pdf");

// Obtener nombres de campos de formulario XFA
string[] names = doc.Form.XFA.FieldNames;

// Establecer valores de campo
doc.Form.XFA[names[0]] = "12345";
doc.Form.XFA[names[1]] = "24/02/2022";
doc.Form.XFA[names[2]] = "Company Name";
doc.Form.XFA[names[3]] = "Company Address";
doc.Form.XFA[names[4]] = "Company City";
doc.Form.XFA[names[5]] = "Canada";
doc.Form.XFA[names[6]] = "Alberta";
doc.Form.XFA[names[7]] = "T9S";
doc.Form.XFA[names[8]] = "+112345567";
doc.Form.XFA[names[10]] = "Mr. John Smith";
doc.Form.XFA[names[11]] = "Delivered to Company Name";
doc.Form.XFA[names[12]] = "Delivery Company Address";
doc.Form.XFA[names[13]] = "Delivery City";
doc.Form.XFA[names[17]] = "+123456789";
doc.Form.XFA[names[19]] = "Mr. Will Smith";
doc.Form.XFA[names[22]] = "57251";

// Guardar el formulario
doc.Save(@"C:\Files\PDF\Filled_XFA_out.pdf");
Rellene formularios XFA usando C#.

Rellene formularios XFA usando C#.

Leer formularios XFA usando C#

Podemos leer el formulario XFA completado siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue un archivo de Excel utilizando la clase Documento.
  2. Obtenga los nombres de los campos de formulario XFA cargados.
  3. En un bucle, obtenga los detalles del campo mediante el método GetFieldTemplate().
  4. Finalmente, muestre los atributos del campo.

El siguiente ejemplo de código muestra cómo leer el formulario XFA completo usando C#.

// Este ejemplo de código demuestra cómo leer un formulario XFA completo.
// Cargar formulario XFA
Document doc = new Document(@"C:\Files\PDF\Filled_XFA_out.pdf");

// Obtener nombres de campos de formulario XFA
string[] names = doc.Form.XFA.FieldNames;

for (int count=0; count<names.Length; count++)
{
    // Obtener detalles del campo
    var field = doc.Form.XFA.GetFieldTemplate(names[count]);
    string fieldName = doc.Form.XFA.GetFieldTemplate(names[count]).InnerText;
    string fieldValue = doc.Form.XFA[names[count]];

    if (!string.IsNullOrEmpty(fieldValue) && fieldValue != "0")
    {
        Console.WriteLine("Field Name : " + field.Attributes["name"].Value);
        Console.WriteLine("Field Description : " + fieldName);
        Console.WriteLine("Field Value : " + fieldValue);
        Console.WriteLine();
    }
}
Lea el formulario XFA lleno usando C#.

Lea el formulario XFA lleno usando C#.

Obtenga una licencia gratis

Pruebe la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, hemos aprendido cómo completar los formularios XFA sin usar Adobe Writer. También hemos visto cómo leer el formulario XFA completo mediante programación. Además, puede obtener más información sobre Aspose.PDF para la API de .NET utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también