A Adobe introduziu formulários interativos e dinâmicos chamados de formulários XFA. XFA significa Arquitetura de Formulários XML. O formulário XFA é semelhante a um arquivo HTML. Ele contém campos preenchíveis e determina o layout ou a aparência como um formulário incorporado em documentos PDF. Neste artigo, aprenderemos como preencher e ler formulários XFA usando C#.
Os seguintes tópicos serão abordados neste artigo:
- API C# para ler e preencher formulários XFA
- Preencha formulários XFA usando C#
- Ler formulários XFA usando C#
API C# para ler e preencher formulários XFA
Para trabalhar com formulários XFA PDF, usaremos a API Aspose.PDF for .NET. Ele nos permite gerar, modificar, converter, renderizar, proteger e imprimir documentos suportados sem usar o Adobe Acrobat. Por favor, baixe a DLL da API ou instale-a usando NuGet.
PM> Install-Package Aspose.Pdf
Preencha formulários XFA usando C#
Podemos preencher formulários XFA programaticamente seguindo as etapas abaixo:
- Primeiramente, carregue um arquivo de formulário XFA usando a classe Document.
- Obtenha os nomes dos campos de formulário XFA carregados.
- Defina os valores do campo.
- Finalmente, chame o método Save(). Ele usa o caminho do arquivo de saída como um argumento.
O exemplo de código a seguir mostra como preencher um formulário XFA usando C#.
// Este exemplo de código demonstra como preencher um formulário XFA.
// Carregar formulário XFA
Document doc = new Document(@"C:\Files\PDF\FillXFAFields.pdf");
// Obter nomes de campos de formulário XFA
string[] names = doc.Form.XFA.FieldNames;
// Definir 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";
// Salve o formulário
doc.Save(@"C:\Files\PDF\Filled_XFA_out.pdf");
Ler formulários XFA usando C#
Podemos ler o formulário XFA preenchido seguindo as etapas abaixo:
- Primeiramente, carregue um arquivo Excel usando a classe Document.
- Obtenha os nomes dos campos de formulário XFA carregados.
- Em um loop, obtenha detalhes do campo usando o método GetFieldTemplate().
- Por fim, mostre os atributos do campo.
O exemplo de código a seguir mostra como ler o formulário XFA preenchido usando C#.
// Este exemplo de código demonstra como ler um formulário XFA preenchido.
// Carregar formulário XFA
Document doc = new Document(@"C:\Files\PDF\Filled_XFA_out.pdf");
// Obter nomes de campos de formulário XFA
string[] names = doc.Form.XFA.FieldNames;
for (int count=0; count<names.Length; count++)
{
// Obter detalhes do 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();
}
}
Obtenha uma licença gratuita
Experimente a API sem limitações de avaliação solicitando uma licença temporária gratuita.
Conclusão
Neste artigo, aprendemos como preencher os formulários XFA sem usar o Adobe Writer. Também vimos como ler o formulário XFA preenchido programaticamente. Além disso, você pode aprender mais sobre Aspose.PDF para .NET API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.