Заполнение и чтение форм XFA с использованием C#

Adobe представила интерактивные и динамические формы, называемые формами XFA. XFA расшифровывается как XML Forms Architecture. Форма XFA аналогична файлу HTML. Он содержит заполняемые поля и определяет макет или внешний вид формы, встроенной в документы PDF. В этой статье мы узнаем, как заполнять и читать формы XFA с помощью C#.

В этой статье должны быть раскрыты следующие темы:

C# API для чтения и заполнения форм XFA

Для работы с формами XFA PDF мы будем использовать API Aspose.PDF for .NET. Это позволяет нам создавать, изменять, преобразовывать, отображать, защищать и печатать поддерживаемые документы без использования Adobe Acrobat. Пожалуйста, загрузите DLL API или установите его с помощью NuGet.

PM> Install-Package Aspose.Pdf

Заполнение форм XFA с помощью C#

Мы можем программно заполнять формы XFA, выполнив следующие шаги:

  1. Во-первых, загрузите файл формы XFA, используя класс Document.
  2. Получить имена загруженных полей формы XFA.
  3. Установите значения полей.
  4. Наконец, вызовите метод Save(). В качестве аргумента принимает путь к выходному файлу.

В следующем примере кода показано, как заполнить форму XFA с помощью C#.

// В этом примере кода показано, как заполнить форму 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");
Заполнение форм XFA с помощью C#.

Заполнение форм XFA с помощью C#.

Чтение форм XFA с помощью C#

Мы можем прочитать заполненную форму XFA, выполнив следующие шаги:

  1. Во-первых, загрузите файл Excel, используя класс Document.
  2. Получить имена загруженных полей формы XFA.
  3. В цикле получите сведения о поле с помощью метода GetFieldTemplate().
  4. Наконец, покажите атрибуты поля.

В следующем примере кода показано, как прочитать заполненную форму XFA с помощью C#.

// В этом примере кода показано, как читать заполненную форму 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();
    }
}
Прочитайте заполненную форму XFA с помощью C#.

Прочитайте заполненную форму XFA с помощью C#.

Получить бесплатную лицензию

Пожалуйста, попробуйте API без ознакомительных ограничений, запросив бесплатную временную лицензию.

Вывод

В этой статье мы узнали, как заполнять формы XFA без использования Adobe Writer. Мы также видели, как программно читать заполненную форму XFA. Кроме того, вы можете узнать больше об Aspose.PDF для .NET API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также