Extract AcroForm - PDFからフォームデータを抽出するC#

以下のコードスニペットは、Aspose.PDF.Drawing ライブラリとも連携します。

フォームからデータを抽出する

PDFドキュメントのすべてのフィールドから値を取得する

PDFドキュメントのすべてのフィールドから値を取得するには、すべてのフォームフィールドをナビゲートし、Valueプロパティを使用して値を取得する必要があります。フォームコレクションから各フィールドを取得し、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プロパティを使用して、特定のフィールドの値を取得できます。値を取得するには、DocumentオブジェクトのFormコレクションからフォームフィールドを取得します。この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 for .NETを使用すれば、問題ありません。PDFファイルの指定された領域にどのフィールドがあるかを調べることができます。PDFファイルの特定の領域からフォームフィールドを取得するには:

  1. Documentオブジェクトを使用してPDFファイルを開きます。
  2. ドキュメントのFormsコレクションからフォームを取得します。
  3. 矩形領域を指定し、FormオブジェクトのGetFieldsInRectメソッドに渡します。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);
}