Извлечь данные AcroForms
Получение значения из отдельного поля PDF-документа
Метод getValue() позволяет получить значение конкретного поля формы.
Чтобы получить значение, получите поле формы из коллекции Form объекта Document.
Этот пример выбирает TextBoxField и извлекает его значение с помощью метода getValue().
package com.aspose.pdf.examples;
import com.aspose.pdf.Document;
import com.aspose.pdf.Field;
import com.aspose.pdf.TextBoxField;
public class ExamplesExtractFormData {
private static String _dataDir = "/home/aspose/pdf-examples/Samples/Forms/";
public static void GetValueFromIndividualFieldPDFDocument() {
// Открыть документ
Document pdfDocument = new Document(_dataDir+"GetValueFromField.pdf");
// Получить поле
TextBoxField textBoxField = (TextBoxField) pdfDocument.getForm().get("textbox1");
// Получить имя поля
System.out.printf("PartialName :-" + textBoxField.getPartialName());
// Получить значение поля
System.out.printf("Value :-" + textBoxField.getValue());
}
Получение значений из всех полей в PDF-документе
Чтобы получить значения из всех полей в PDF-документе, необходимо пройти через все поля формы и затем получить значение, используя метод getValue(). Получите каждое поле из коллекции Form, используя метод getForm() объекта Document и получите список полей формы в массив Field, используя getFields(), и пройдитесь по массиву, чтобы получить значение полей.
Следующий фрагмент кода показывает, как получить значения всех полей в PDF-документе.
public static void GetValuesFromAllFieldsPDFDocument() {
// Открыть документ
Document document = new Document(_dataDir + "GetValuesFromAllFields.pdf");
Field[] fields = document.getForm().getFields();
for (int i = 0; i < fields.length; i++) {
System.out.println("Поле формы: " + fields[i].getFullName());
System.out.println("Поле формы: " + fields[i].getValue());
}
}
}
Получение полей формы из определенной области PDF-файла
В некоторых случаях требуется получить данные не из всей формы, а, например, только из верхней левой четверти печатного листа. С Aspose.PDF для Java это не проблема. Вы можете указать область, чтобы отфильтровать поля, находящиеся за пределами заданной области PDF-файла. Чтобы получить поля формы из определенной области PDF-файла:
- Откройте PDF-файл с помощью объекта Document.
- Получите форму из коллекции Forms документа.
- Укажите прямоугольную область и передайте ее методу getFieldsInRect объекта Form. Возвращается коллекция Fields.
- Используйте это для обработки полей.
Следующий фрагмент кода показывает, как получить поля формы в определенной прямоугольной области PDF-файла.
public static void GetValuesFromSpecificRegion() {
// Открыть PDF-файл
Document doc = new Document(_dataDir + "GetFieldsFromRegion.pdf");
// Создать объект прямоугольника для получения полей в этой области
Rectangle rectangle = new Rectangle(35, 30, 500, 500);
// Получить форму PDF
com.aspose.pdf.Form form = doc.getForm();
// Получить поля в прямоугольной области
Field[] fields = form.getFieldsInRect(rectangle);
// Отобразить имена и значения полей
for (Field field : fields)
{
// Отобразить свойства размещения изображения для всех размещений
System.out.println("Имя поля: " + field.getFullName() + "-" + "Значение поля: " + field.getValue());
}
}