Извлечь AcroForm - Извлечение данных формы из PDF в C#

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

Извлечение данных из формы

Получение значений из всех полей PDF документа

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

Следующие фрагменты кода на C# показывают, как получить значения всех полей из PDF документа.

// Для полных примеров и файлов данных, пожалуйста, перейдите на https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к директории с документами.
string dataDir = RunExamples.GetDataDir_AsposePdf_Forms();

// Открыть документ
Document pdfDocument = new Document(dataDir + "GetValuesFromAllFields.pdf");

// Получить значения из всех полей
foreach (Field formField in pdfDocument.Form)
{
    Console.WriteLine("Имя поля : {0} ", formField.PartialName);
    Console.WriteLine("Значение : {0} ", formField.Value);
}

Получение значения из отдельного поля PDF-документа

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

// Для полных примеров и файлов данных, пожалуйста, перейдите на https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_AsposePdf_Forms();

// Открыть документ
Document pdfDocument = new Document(dataDir + "GetValueFromField.pdf");

// Получить поле
TextBoxField textBoxField = pdfDocument.Form["textbox1"] as TextBoxField;

// Получить значение поля
Console.WriteLine("PartialName : {0} ", textBoxField.PartialName);
Console.WriteLine("Value : {0} ", textBoxField.Value);

Для получения URL кнопки отправки используйте следующие строки кода.

// Для полных примеров и файлов данных, пожалуйста, перейдите на https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_AsposePdf_Forms();

// Открыть документ
Document pdfDocument = new Document(dataDir + "GetValueFromField.pdf");
SubmitFormAction act = pdfDocument.Form[1].OnActivated as SubmitFormAction;
if(act != null)
Console.WriteLine(act.Url.Name);

Получение полей формы из определенного региона PDF-файла

Иногда вы можете знать, где в документе находится поле формы, но не знать его имени. Например, если у вас есть только схема печатной формы. С Aspose.PDF для .NET это не проблема. Вы можете узнать, какие поля находятся в заданной области PDF-файла. Чтобы получить поля формы из определенного региона PDF-файла:

  1. Откройте PDF-файл с помощью объекта Document.
  2. Получите форму из коллекции Forms документа.
  3. Укажите прямоугольный регион и передайте его в метод GetFieldsInRect объекта Form. Возвращается коллекция Fields.
  4. Используйте это для манипуляции с полями.

Следующий фрагмент кода на C# показывает, как получить поля формы в определенной прямоугольной области PDF-файла.

// Для полных примеров и файлов данных, пожалуйста, перейдите на https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_AsposePdf_Forms();

// Открыть pdf файл
Aspose.Pdf.Document doc = new Aspose.Pdf.Document(dataDir + "GetFieldsFromRegion.pdf");

// Создать объект прямоугольника, чтобы получить поля в этой области
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(35, 30, 500, 500);

// Получить PDF форму
Aspose.Pdf.Forms.Form form = doc.Form;

// Получить поля в прямоугольной области
Aspose.Pdf.Forms.Field[] fields = form.GetFieldsInRect(rectangle);

// Отобразить имена полей и значения
foreach (Field field in fields)
{
    // Отобразить свойства размещения изображения для всех размещений
    Console.Out.WriteLine("Имя поля: " + field.FullName + "-" + "Значение поля: " + field.Value);
}