
アドビは、XFAフォームと呼ばれるインタラクティブで動的なフォームを導入しました。 XFAはXMLFormsArchitectureの略です。 XFAフォームはHTMLファイルに似ています。入力可能なフィールドが含まれ、PDFドキュメント内に埋め込まれたフォームとしてレイアウトまたは外観を決定します。この記事では、C#を使用してXFAフォームに入力して読み取る方法を学習します。
この記事では、次のトピックについて説明します。
XFAフォームを読み取って入力するためのC#API
XFA PDFフォームを操作するには、Aspose.PDF for .NETAPIを使用します。これにより、Adobe Acrobatを使用せずに、サポートされているドキュメントを生成、変更、変換、レンダリング、保護、および印刷することができます。 APIのDLLをダウンロードするか、NuGetを使用してインストールしてください。
PM> Install-Package Aspose.Pdf
C#を使用してXFAフォームに入力する
以下の手順に従って、プログラムでXFAフォームに入力できます。
- まず、Documentクラスを使用してXFAフォームファイルをロードします。
- ロードされたXFAフォームフィールドの名前を取得します。
- フィールド値を設定します。
- 最後に、Save()メソッドを呼び出します。出力ファイルのパスを引数として取ります。
次のコードサンプルは、C#を使用してXFAフォームに入力する方法を示しています。
// このコード例は、XFAフォームに入力する方法を示しています。
// XFAフォームを読み込む
Document doc = new Document(@"C:\Files\PDF\FillXFAFields.pdf");
// XFAフォームフィールドの名前を取得する
string[] names = doc.Form.XFA.FieldNames;
// フィールド値を設定する
doc.Form.XFA[names[0]] = "12345";
doc.Form.XFA[names[1]] = "24/02/2022";
doc.Form.XFA[names[2]] = "Company Name";
doc.Form.XFA[names[3]] = "Company Address";
doc.Form.XFA[names[4]] = "Company City";
doc.Form.XFA[names[5]] = "Canada";
doc.Form.XFA[names[6]] = "Alberta";
doc.Form.XFA[names[7]] = "T9S";
doc.Form.XFA[names[8]] = "+112345567";
doc.Form.XFA[names[10]] = "Mr. John Smith";
doc.Form.XFA[names[11]] = "Delivered to Company Name";
doc.Form.XFA[names[12]] = "Delivery Company Address";
doc.Form.XFA[names[13]] = "Delivery City";
doc.Form.XFA[names[17]] = "+123456789";
doc.Form.XFA[names[19]] = "Mr. Will Smith";
doc.Form.XFA[names[22]] = "57251";
// フォームを保存する
doc.Save(@"C:\Files\PDF\Filled_XFA_out.pdf");

C#を使用してXFAフォームに入力します。
C#を使用してXFAフォームを読む
以下の手順に従って、記入済みのXFAフォームを読むことができます。
- まず、Documentクラスを使用してExcelファイルをロードします。
- ロードされたXFAフォームフィールドの名前を取得します。
- ループ内で、GetFieldTemplate()メソッドを使用してフィールドの詳細を取得します。
- 最後に、フィールド属性を表示します。
次のコードサンプルは、C#を使用して入力されたXFAフォームを読み取る方法を示しています。
// このコード例は、入力されたXFAフォームを読み取る方法を示しています。
// XFAフォームを読み込む
Document doc = new Document(@"C:\Files\PDF\Filled_XFA_out.pdf");
// XFAフォームフィールドの名前を取得する
string[] names = doc.Form.XFA.FieldNames;
for (int count=0; count<names.Length; count++)
{
// フィールドの詳細を取得する
var field = doc.Form.XFA.GetFieldTemplate(names[count]);
string fieldName = doc.Form.XFA.GetFieldTemplate(names[count]).InnerText;
string fieldValue = doc.Form.XFA[names[count]];
if (!string.IsNullOrEmpty(fieldValue) && fieldValue != "0")
{
Console.WriteLine("Field Name : " + field.Attributes["name"].Value);
Console.WriteLine("Field Description : " + fieldName);
Console.WriteLine("Field Value : " + fieldValue);
Console.WriteLine();
}
}

C#を使用して記入済みのXFAフォームをお読みください。
無料ライセンスを取得する
無料の一時ライセンスをリクエストして、評価制限なしでAPIを試してください。
結論
この記事では、AdobeWriterを使用せずにXFAフォームに入力する方法を学びました。また、記入済みのXFAフォームをプログラムで読み取る方法も確認しました。さらに、ドキュメントを使用して、Aspose.PDF for.NETAPIの詳細を学ぶことができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。