Извлечение данных из AcroForm с помощью C#

Извлечение полей формы из PDF-документа

Помимо создания полей форм и заполнения полей форм, Aspose.PDF for .NET упрощает извлечение данных поля формы или информации о полях форм из файлов PDF.

В приведённом ниже примере кода показано, как перебрать каждую страницу в PDF, чтобы извлечь информацию обо всех AcroForm в PDF, а также значения полей формы. Этот пример кода предполагает, что вы заранее не знаете названия полей формы.

Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractFormFields()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdfFacades_Forms();
    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "StudentInfoFormElectronic.pdf"))
    {
        // Get values from all fields
        foreach (Aspose.Pdf.Forms.Field formField in document.Form)
        {
            Console.WriteLine("Field Name : {0} ", formField.PartialName);
            Console.WriteLine("Value : {0} ", formField.Value);
        }
    }
}

Если вам известно название полей формы, из которых вы хотите извлечь значения, вы можете использовать индексатор в коллекции Documents.Form для быстрого получения этих данных. Посмотрите в конце этой статьи пример кода того, как использовать эту функцию.

Получение значения поля формы по заголовку

Свойство Value поля формы позволяет получить значение определённого поля. Чтобы получить значение, получите поле формы из коллекции Form объекта Document. В этом примере выбирается TextBoxField и его значение извлекается с помощью свойства Value.

Извлечение полей формы из PDF-документа в JSON

Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractFormFieldsToJson()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdfFacades_Forms();
    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "StudentInfoFormElectronic.pdf"))
    {
        // Extract form fields and convert to JSON
        var formData = document.Form.Cast<Aspose.Pdf.Forms.Field>().Select(f => new { Name = f.PartialName, f.Value });
        string jsonString = System.Text.Json.JsonSerializer.Serialize(formData);

        // Output the JSON string
        Console.WriteLine(jsonString);
    }
}

Извлечение данных в XML из файла PDF

Класс Form позволяет экспортировать данные в файл XML из PDF-файла с помощью метода ExportXml. Чтобы экспортировать данные в XML, необходимо создать объект класса Form, а затем вызвать метод ExportXml с использованием объекта FileStream. Наконец, вы можете закрыть объект FileStream и удалить объект Form. Следующий фрагмент кода показывает, как экспортировать данные в файл XML.

Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportFormDataToXml()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdfFacades_Forms();

    // Create form
    using (var form = new Aspose.Pdf.Facades.Form())
    {
        // Bind PDF document
        form.BindPdf(dataDir + "input.pdf");

        // Create XML file
        using (var xmlOutputStream = new FileStream(dataDir + "input.xml", FileMode.Create))
        {
            // Export data
            form.ExportXml(xmlOutputStream);
        }
    }
}

Экспорт данных в FDF из файла PDF

Класс Form позволяет экспортировать данные в файл FDF из PDF-файла с помощью метода ExportFdf. Чтобы экспортировать данные в FDF, необходимо создать объект класса Form, а затем вызвать метод ExportFdf с использованием объекта FileStream. Наконец, вы можете сохранить PDF-файл с помощью метода Save класса Form. Следующий фрагмент кода показывает, как экспортировать данные в файл FDF.

Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportDataToPdf()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdfFacades_Forms();

    // Create form
    using (var form = new Aspose.Pdf.Facades.Form())
    {
        // Bind PDF document
        form.BindPdf(dataDir + "input.pdf");

        // Create fdf file
        using (var fdfOutputStream = new FileStream(dataDir + "student.fdf", FileMode.Create))
        {
            // Export data
            form.ExportFdf(fdfOutputStream);
        }

        // Save PDF document
        form.Save(dataDir + "ExportDataToPdf_out.pdf");
    }
}

Экспорт данных в XFDF из файла PDF

Класс Form позволяет экспортировать данные в файл XFDF из PDF-файла с помощью метода ExportXfdf. Чтобы экспортировать данные в XFDF, необходимо создать объект класса Form, а затем вызвать метод ExportXfdf с использованием объекта FileStream. Наконец, вы можете сохранить PDF-файл с помощью метода Save класса Form. Следующий фрагмент кода показывает, как экспортировать данные в файл XFDF.

Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportDataToXFDF()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdfFacades_Forms();

    // Create form
    using (var form = new Aspose.Pdf.Facades.Form())
    {
        // Bind PDF document
        form.BindPdf(dataDir + "input.pdf");

        // Create xfdf file
        using (var xfdfOutputStream = new FileStream(dataDir + "student1.xfdf", FileMode.Create))
        {
            // Export data
            form.ExportXfdf(xfdfOutputStream);
        }

        // Save PDF document
        form.Save(dataDir + "ExportDataToXFDF_out.pdf");
    }
}