C#を使用してXFAフォームに入力して読み取る

アドビは、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フォームに入力できます。

  1. まず、Documentクラスを使用してXFAフォームファイルをロードします。
  2. ロードされたXFAフォームフィールドの名前を取得します。
  3. フィールド値を設定します。
  4. 最後に、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フォームに入力します。

C#を使用してXFAフォームを読む

以下の手順に従って、記入済みのXFAフォームを読むことができます。

  1. まず、Documentクラスを使用してExcelファイルをロードします。
  2. ロードされたXFAフォームフィールドの名前を取得します。
  3. ループ内で、GetFieldTemplate()メソッドを使用してフィールドの詳細を取得します。
  4. 最後に、フィールド属性を表示します。

次のコードサンプルは、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フォームをお読みください。

C#を使用して記入済みのXFAフォームをお読みください。

無料ライセンスを取得する

無料の一時ライセンスをリクエストして、評価制限なしでAPIを試してください。

結論

この記事では、AdobeWriterを使用せずにXFAフォームに入力する方法を学びました。また、記入済みのXFAフォームをプログラムで読み取る方法も確認しました。さらに、ドキュメントを使用して、Aspose.PDF for.NETAPIの詳細を学ぶことができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目