使用 C# 填写和读取 XFA 表单

Adobe 引入了一种称为 XFA 表单的交互式动态表单。 XFA 代表 XML 表单架构。 XFA 表单类似于 HTML 文件。它包含可填写的字段,并将布局或外观确定为嵌入在 PDF 文档中的表单。在本文中,我们将学习如何使用 C# 填写和读取 XFA 表单。

本文将涵盖以下主题:

用于读取和填写 XFA 表单的 C# API

为了使用 XFA PDF 表单,我们将使用 Aspose.PDF for .NET API。它允许我们在不使用 Adobe Acrobat 的情况下生成、修改、转换、渲染、保护和打印 支持的文档。请下载 API 的 DLL 或使用 NuGet 安装它。

PM> Install-Package Aspose.Pdf

使用 C# 填写 XFA 表单

我们可以按照以下步骤以编程方式填写 XFA 表格:

  1. 首先,使用 Document 类加载一个 XFA 表单文件。
  2. 获取加载的 XFA 表单字段的名称。
  3. 设置字段值。
  4. 最后,调用 Save() 方法。它将输出文件的路径作为参数。

以下代码示例展示了如何使用 C# 填写 XFA 表单。

// 此代码示例演示如何填写 XFA 表单。
// 加载 XFA 表格
Document doc = new Document(@"C:\Files\PDF\FillXFAFields.pdf");

// 获取 XFA 表单字段的名称
string[] names = doc.Form.XFA.FieldNames;

// 设置字段值
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";

// 保存表格
doc.Save(@"C:\Files\PDF\Filled_XFA_out.pdf");
使用 C# 填写 XFA 表单。

使用 C# 填写 XFA 表单。

使用 C# 读取 XFA 表单

我们可以按照以下步骤阅读填写好的 XFA 表格:

  1. 首先,使用 Document 类加载一个 Excel 文件。
  2. 获取加载的 XFA 表单字段的名称。
  3. 在循环中,使用 GetFieldTemplate() 方法获取字段详细信息。
  4. 最后,显示字段属性。

下面的代码示例展示了如何使用 C# 读取填充的 XFA 表单。

// 此代码示例演示如何读取已填写的 XFA 表单。
// 加载 XFA 表格
Document doc = new Document(@"C:\Files\PDF\Filled_XFA_out.pdf");

// 获取 XFA 表单字段的名称
string[] names = doc.Form.XFA.FieldNames;

for (int count=0; count<names.Length; count++)
{
    // 获取字段详细信息
    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();
    }
}
使用 C# 阅读已填写的 XFA 表单。

使用 C# 阅读已填写的 XFA 表单。

获得免费许可证

请通过请求 免费的临时许可证 来尝试不受评估限制的 API。

结论

在本文中,我们学习了如何在不使用 Adobe writer 的情况下填写 XFA 表单。我们还看到了如何以编程方式读取已填写的 XFA 表单。此外,您可以使用 文档 了解更多关于 Aspose.PDF for .NET API 的信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看