C#を使用してAcroFormからデータを抽出する
PDFドキュメントからフォームフィールドを抽出する
Aspose.PDF for .NETは、フォームフィールドを生成したり、フォームフィールドに入力したりすることを可能にするだけでなく、PDFファイルからフォームフィールドデータやフォームフィールドに関する情報を抽出するのも簡単です。
以下のサンプルコードでは、PDF内のすべてのAcroFormおよびフォームフィールド値についての情報を抽出するために、PDFの各ページを反復処理する方法を示しています。このサンプルコードは、事前にフォームフィールドの名前を知らないという前提で作成されています。
次のコードスニペットもAspose.PDF.Drawingライブラリで動作します。
public static void ExtractFormFields()
{
var document = new Aspose.Pdf.Document(Path.Combine(_dataDir, "StudentInfoFormElectronic.pdf"));
// Get values from all fields
foreach (Field formField in document.Form)
{
Console.WriteLine("Field Name : {0} ", formField.PartialName);
Console.WriteLine("Value : {0} ", formField.Value);
}
}
フォームフィールドの名前がわかっている場合は、Documents.Form コレクションのインデクサを使用して、このデータをすばやく取得できます。この記事の最後にその機能を使用する方法のサンプルコードをご覧ください。
タイトルでフォームフィールドの値を取得する
フォームフィールドの Value プロパティを使用して、特定のフィールドの値を取得できます。値を取得するには、Document オブジェクトの Form コレクションからフォームフィールドを取得します。この例では、TextBoxField を選択して Value プロパティを使用してその値を取得します。
PDFドキュメントからフォームフィールドをJSONに抽出する
次のコードスニペットも Aspose.PDF.Drawing ライブラリで動作します。
public static void ExtractFormFieldsToJson()
{
var document = new Aspose.Pdf.Document(Path.Combine(_dataDir, "StudentInfoFormElectronic.pdf"));
var formData = document.Form.Cast<Field>().Select(f => new { Name = f.PartialName, f.Value });
string jsonString = JsonSerializer.Serialize(formData);
Console.WriteLine(jsonString);
}
PDFファイルからXMLへデータ抽出
Formクラスを使用すると、ExportXmlメソッドを使用してPDFファイルからXMLファイルにデータをエクスポートできます。XMLにデータをエクスポートするには、Formクラスのオブジェクトを作成し、FileStreamオブジェクトを使用してExportXmlメソッドを呼び出す必要があります。最後に、FileStreamオブジェクトを閉じてFormオブジェクトを破棄します。次のコードスニペットは、XMLファイルにデータをエクスポートする方法を示しています。
次のコードスニペットは、Aspose.PDF.Drawingライブラリでも動作します。
// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-.NET をご覧ください。
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdfFacades_Forms();
// ドキュメントを開く
Aspose.Pdf.Facades.Form form = new Aspose.Pdf.Facades.Form();
form.BindPdf(dataDir + "input.pdf");
// xmlファイルを作成。
System.IO.FileStream xmlOutputStream = new FileStream(dataDir + "input.xml", FileMode.Create);
// データをエクスポート
form.ExportXml(xmlOutputStream);
// ファイルストリームを閉じる
xmlOutputStream.Close();
// ドキュメントを閉じる
form.Dispose();
PDFファイルからFDFへデータをエクスポートする
Formクラスを使用して、PDFファイルからFDFファイルにデータをエクスポートすることができます。FDFにデータをエクスポートするためには、Formクラスのオブジェクトを作成し、FileStreamオブジェクトを使用してExportFdfメソッドを呼び出す必要があります。最後に、FormクラスのSaveメソッドを使用してPDFファイルを保存します。以下のコードスニペットは、FDFファイルにデータをエクスポートする方法を示しています。
以下のコードスニペットは、Aspose.PDF.Drawing ライブラリでも動作します。
// 完全な例やデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-.NET にアクセスしてください。
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdfFacades_Forms();
Aspose.Pdf.Facades.Form form = new Aspose.Pdf.Facades.Form();
// ドキュメントを開く
form.BindPdf(dataDir + "input.pdf");
// fdfファイルを作成する。
System.IO.FileStream fdfOutputStream = new FileStream(dataDir + "student.fdf", FileMode.Create);
// データをエクスポート
form.ExportFdf(fdfOutputStream);
// ファイルストリームを閉じる
fdfOutputStream.Close();
// 更新されたドキュメントを保存
form.Save(dataDir + "ExportDataToPdf_out.pdf");
PDFファイルからXFDFへデータをエクスポート
Formクラスを使用して、PDFファイルからXFDFファイルへデータをエクスポートすることができます。XFDFへデータをエクスポートするには、Formクラスのオブジェクトを作成し、FileStreamオブジェクトを使用してExportXfdfメソッドを呼び出す必要があります。最後に、FormクラスのSaveメソッドを使用してPDFファイルを保存できます。以下のコードスニペットは、XFDFファイルへデータをエクスポートする方法を示しています。
以下のコードスニペットは、Aspose.PDF.Drawingライブラリとも動作します。
// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-.NET をご覧ください
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdfFacades_Forms();
Aspose.Pdf.Facades.Form form = new Aspose.Pdf.Facades.Form();
// ドキュメントを開く
form.BindPdf(dataDir + "input.pdf");
// xfdfファイルを作成。
System.IO.FileStream xfdfOutputStream = new FileStream("student1.xfdf", FileMode.Create);
// データをエクスポート
form.ExportXfdf(xfdfOutputStream);
// ファイルストリームを閉じる
xfdfOutputStream.Close();
// 更新されたドキュメントを保存
form.Save(dataDir + "ExportDataToXFDF_out.pdf");