Extract AcroForm - PDFからフォームデータを抽出するC#
Contents
[
Hide
]
以下のコードスニペットは、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ファイルの特定の領域からフォームフィールドを取得するには:
- Documentオブジェクトを使用してPDFファイルを開きます。
- ドキュメントのFormsコレクションからフォームを取得します。
- 矩形領域を指定し、FormオブジェクトのGetFieldsInRectメソッドに渡します。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);
}