データの抽出 AcroForms
Contents
[
Hide
]
PDF ドキュメントの個々のフィールドから値を取得する
フォームフィールドのgetValue() メソッドを使用すると、特定のフィールドの値を取得できます。
値を取得するには、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() メソッドを使用して値を取得する必要があります。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ファイルの特定の領域からフォームフィールドを取得する
場合によっては、フォーム全体からではなく、例えば印刷されたシートの左上の4分の1からのみデータを取得する必要があります。
Aspose.PDF for Javaを使用すれば、これは問題ありません。PDFファイルの指定された領域外のフィールドをフィルタリングするための領域を指定できます。PDFファイルの特定の領域からフォームフィールドを取得するには、以下の手順を実行します。
- Documentオブジェクトを使用してPDFファイルを開きます。
- ドキュメントのFormsコレクションからフォームを取得します。
- 長方形の領域を指定し、それをFormオブジェクトのgetFieldsInRectメソッドに渡します。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 Name: " + field.getFullName() + "-" + "Field Value: " + field.getValue());
}
}