Извлечь 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-файла:
- Откройте PDF-файл с помощью объекта Document.
- Получите форму из коллекции Forms документа.
- Укажите прямоугольный регион и передайте его в метод GetFieldsInRect объекта Form. Возвращается коллекция Fields.
- Используйте это для манипуляции с полями.
Следующий фрагмент кода на 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);
}