提取数据 AcroForms

从 PDF 文档中的单个字段获取值

表单字段的getValue() 方法允许您获取特定字段的值。

要获取该值,请从Document对象的 Form 集合中获取表单字段。

此示例选择一个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() 方法获取值。使用Document对象的getForm() 方法从 Form 集合中获取每个字段,并使用 getFields() 将表单字段的列表存入 Field 数组中,然后遍历数组以获取字段的值。

以下代码片段演示如何获取 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 for Java,这不是问题。您可以指定一个区域来过滤掉给定 PDF 文件区域之外的字段。要从 PDF 文件的特定区域获取表单字段:

  1. 使用 Document 对象打开 PDF 文件。
  2. 从文档的 Forms 集合中获取表单。
  3. 指定矩形区域并将其传递给 Form 对象的 getFieldsInRect 方法。返回一个 Fields 集合。
  4. 使用此集合来操作字段。

以下代码片段显示了如何在 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 Name: " + field.getFullName() + "-" + "Field Value: " + field.getValue());
    }
}