C#を使用してフォームフィールド署名でPDFに署名する

フォームフィールドは、ユーザーから情報を収集するために使用されるさまざまなタイプのデータフィールドです。 C#開発者は、ユーザーが電子的に入力および署名するPDFドキュメントを簡単に作成できます。これは、顧客からのフィードバックやパートナーの同意などを収集するのに役立ちます。この記事では、C#を使用してフォームフィールド署名を使用してPDFドキュメントに電子署名する方法を学習します。

この記事では、次のトピックについて説明/取り上げています。

PDFドキュメントに署名するためのC#API

GroupDocs.Signature for .NET APIを使用して、フォームフィールド署名が有効になっているPDFドキュメントに署名します。 APIを使用すると、サポートされているドキュメント形式にデジタル署名を追加し、.NETアプリケーションに一般的な電子署名タイプを実装できます。また、シンプルで高度な検索オプションを使用して、ドキュメントで必要な署名を見つけることができます。

C#を使用してフォームフィールド署名でPDFドキュメントに署名する

次のタイプのフォームフィールド署名をプログラムで使用して、PDFドキュメントに電子的に署名できます。

テキストフォームのフィールド署名を使用してPDFドキュメントに署名する

以下に説明する簡単な手順に従って、テキストフォームフィールドの署名を使用してPDFドキュメントに署名できます。

  • Signatureクラスのインスタンスを作成します
  • 入力PDFドキュメントのパスを指定します
  • TextFormFieldSignatureクラスのインスタンスを作成します
  • TextFormFieldSignatureオブジェクトを使用してFormFieldSignOptionsクラスのインスタンスを作成します
  • マージン、高さ、幅などの必要なサインオプションを設定します。
  • FormFieldSignOptionsと出力ファイルパスを使用してSign()メソッドを呼び出します

次のコードサンプルは、C#を使用してテキストフォームフィールドの署名を使用してPDFドキュメントに電子署名する方法を示しています。

// 署名のインスタンスを作成する
Signature signature = new Signature(@"C:\Files\sample.pdf");

// テキストフォームフィールドの署名をインスタンス化する
TextFormFieldSignature textSignature = new TextFormFieldSignature("textBoxData1", "Enter Your Name");
// テキストフォームフィールドの署名に基づいてオプションをインスタンス化する
FormFieldSignOptions optionsTextFF = new FormFieldSignOptions(textSignature);
optionsTextFF.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextFF.VerticalAlignment = VerticalAlignment.Top;
optionsTextFF.Margin = new Padding(20, 0, 170, 0);
optionsTextFF.Height = 50;
optionsTextFF.Width = 200;

// ファイルに文書に署名する
signature.Sign(@"C:\Files\TextFormFieldSignature.pdf", optionsTextFF);

Signatureクラスは、ドキュメントの署名プロセスを制御するメインクラスです。ドキュメント内の署名に署名、検索、削除、または検証するためのさまざまな方法を提供します。このクラスのSign()メソッドは、定義されたSignOptionsを使用してドキュメントに署名するために使用されます。

TextFormFieldSignatureクラスは、PDFドキュメントのテキスト入力フォームフィールド署名プロパティを提供します。

ラジオボタンフォームのフィールド署名を使用してPDFドキュメントに署名する

前述の手順に従って、ラジオボタンフォームフィールドの署名を使用してPDFドキュメントに署名できます。ただし、TextFormFieldSignatureではなくRadioButtonFormFieldSignatureクラスのインスタンスを作成する必要があります。

次のコードサンプルは、C#を使用してラジオボタンフォームフィールド署名を使用してPDFドキュメントに電子署名する方法を示しています。

// 署名のインスタンスを作成する
Signature signature = new Signature(@"C:\Files\sample.pdf");

// ラジオボタンフォームフィールドの署名をインスタンス化する
List<string> radioOptions = new List<string>() { "Male", "Female" };
RadioButtonFormFieldSignature rbSignature = new RadioButtonFormFieldSignature("radioData1", radioOptions, "Male");
// テキストフォームフィールドの署名に基づいてオプションをインスタンス化する
FormFieldSignOptions optionsTextRB = new FormFieldSignOptions(rbSignature);
optionsTextRB.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextRB.VerticalAlignment = VerticalAlignment.Top;
optionsTextRB.Margin = new Padding(20, 0, 170, 0);
optionsTextRB.Height = 50;
optionsTextRB.Width = 200;

// ファイルに文書に署名する
signature.Sign(@"C:\Files\RadioButtonFormFieldSignature.pdf", optionsTextRB);

RadioButtonFormFieldSignatureクラスは、PDFドキュメントのラジオボタン入力フォームフィールド署名プロパティを提供します。

コンボボックスフォームのフィールド署名を使用してPDFドキュメントに署名する

前述の手順に従って、コンボボックスフォームフィールドの署名を使用してPDFドキュメントに署名できます。ただし、TextFormFieldSignatureではなくComboboxFormFieldSignatureのインスタンスを作成する必要があります。

次のコードサンプルは、C#を使用してComboboxフォームフィールド署名を使用してPDFドキュメントに電子署名する方法を示しています。

// 署名のインスタンスを作成する
Signature signature = new Signature(@"C:\Files\sample.pdf");

// コンボボックスフォームのフィールド署名をインスタンス化する
List<string> items = new List<string>() { "Australia", "United Kingdom", "United States" };
ComboboxFormFieldSignature cmbSignature = new ComboboxFormFieldSignature("combo1", items, "Australia");
// テキストフォームフィールドの署名に基づいてオプションをインスタンス化する
FormFieldSignOptions optionsTextCMB = new FormFieldSignOptions(cmbSignature);
optionsTextCMB.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextCMB.VerticalAlignment = VerticalAlignment.Top;
optionsTextCMB.Margin = new Padding(20, 0, 238, 0);
optionsTextCMB.Height = 20;
optionsTextCMB.Width = 200;

// ファイルに文書に署名する
signature.Sign(@"C:\Files\ComboboxFormFieldSignature.pdf", optionsTextCMB);

ComboboxFormFieldSignatureクラスは、PDFドキュメントのコンボボックス入力フォームフィールド署名プロパティを提供します。

チェックボックスフォームのフィールド署名を使用してPDFドキュメントに署名する

前述の同じ手順に従って、チェックボックスフォームフィールドの署名を使用してPDFドキュメントに署名できます。ただし、TextFormFieldSignatureではなくCheckboxFormFieldSignatureのインスタンスを作成する必要があります。

次のコードサンプルは、チェックボックスフォームフィールドの署名を使用してPDFドキュメントに電子署名する方法を示しています。

// 署名のインスタンスを作成する
Signature signature = new Signature(@"C:\Files\sample.pdf");

List<SignOptions> listOptions = new List<SignOptions>();

// テキストフォームフィールドの署名をインスタンス化する
CheckboxFormFieldSignature chbSignature = new CheckboxFormFieldSignature("chbData1", true);
// テキストフォームフィールドの署名に基づいてオプションをインスタンス化する
FormFieldSignOptions optionsTextCHB = new FormFieldSignOptions(chbSignature);
optionsTextCHB.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextCHB.VerticalAlignment = VerticalAlignment.Top;
optionsTextCHB.Margin = new Padding(20, 0, 270, 0);
optionsTextCHB.Height = 20;
optionsTextCHB.Width = 20;

// ファイルに文書に署名する
signature.Sign(@"C:\Files\CheckboxFormFieldSignature.pdf", optionsTextCHB);

CheckboxFormFieldSignatureクラスは、PDFドキュメントのチェックボックス入力フォームフィールド署名プロパティを提供します。

デジタルフォームのフィールド署名を使用してPDFドキュメントに署名する

前述の同じ手順に従って、デジタルフォームフィールド署名を使用してPDFドキュメントに署名できます。ただし、TextFormFieldSignatureではなくDigitalFormFieldSignatureのインスタンスを作成する必要があります。

次のコードサンプルは、デジタルフォームフィールド署名を使用してPDFドキュメントに電子署名する方法を示しています。

// 署名のインスタンスを作成する
Signature signature = new Signature(@"C:\Files\sample.pdf");

// テキストフォームフィールドの署名をインスタンス化する
DigitalFormFieldSignature digSignature = new DigitalFormFieldSignature("dgData1");
// テキストフォームフィールドの署名に基づいてオプションをインスタンス化する
FormFieldSignOptions optionsTextDIG = new FormFieldSignOptions(digSignature);
optionsTextDIG.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextDIG.VerticalAlignment = VerticalAlignment.Top;
optionsTextDIG.Margin = new Padding(20, 0, 300, 0);
optionsTextDIG.Height = 50;
optionsTextDIG.Width = 200;
optionsTextDIG.ForeColor = System.Drawing.Color.Yellow;

// ファイルに文書に署名する
signature.Sign(@"C:\Files\DigitalFormFieldSignature.pdf", optionsTextDIG);

DigitalFormFieldSignatureクラスは、PDFドキュメントのデジタル署名入力フォームフィールドのプロパティを提供します。ユーザーは、このフィールドで自分のデジタル署名を使用してドキュメントに署名できる必要があります。

C#を使用して複数のフォームフィールド署名でPDFドキュメントに署名する

以下に説明する簡単な手順に従って、プログラムで複数のフォームフィールド署名を使用してPDFドキュメントに電子署名できます。

  • Signatureクラスのインスタンスを作成します
  • 入力PDFドキュメントのパスを指定します
  • SignOptionsのリストを定義します
  • FormFieldSignatureオブジェクトを作成します
  • 作成したFormFieldSignatureオブジェクトのFormFieldSignOptionsのインスタンスを作成します
  • 各オブジェクトの位置(マージン、高さ、幅など)などの必要な記号オプションを設定します
  • FormFieldSignOptionsオブジェクトをSignOptionsリストに追加します
  • SignOptionsと出力ファイルパスを使用してSign()メソッドを呼び出します

次のコードサンプルは、C#を使用して複数のフォームフィールド署名を使用してPDFドキュメントに電子署名する方法を示しています。

// 署名のインスタンスを作成する
Signature signature = new Signature(@"C:\Files\sample.pdf");

List<SignOptions> listOptions = new List<SignOptions>();

// テキストフォームフィールドの署名をインスタンス化する
TextFormFieldSignature textSignature = new TextFormFieldSignature("tbData1", "Enter Your Name");
// テキストフォームフィールドの署名に基づいてオプションをインスタンス化する
FormFieldSignOptions optionsTextFF = new FormFieldSignOptions(textSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 138, 0),
    Height = 20,
    Width = 200
};

// ラジオボタンフォームフィールドの署名をインスタンス化する
List<string> radioOptions = new List<string>() { "Male", "Female" };
RadioButtonFormFieldSignature rbSignature = new RadioButtonFormFieldSignature("radioData1", radioOptions, "Male");
// テキストフォームフィールドの署名に基づいてオプションをインスタンス化する
FormFieldSignOptions optionsTextRB = new FormFieldSignOptions(rbSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 170, 0),
    Height = 50,
    Width = 200,
};

// コンボボックスフォームのフィールド署名をインスタンス化する
List<string> items = new List<string>() { "Australia", "United Kingdom", "United States" };
ComboboxFormFieldSignature cmbSignature = new ComboboxFormFieldSignature("combo1", items, "Australia");
// テキストフォームフィールドの署名に基づいてオプションをインスタンス化する
FormFieldSignOptions optionsTextCMB = new FormFieldSignOptions(cmbSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 238, 0),
    Height = 20,
    Width = 200,
};

// テキストフォームフィールドの署名をインスタンス化する
CheckboxFormFieldSignature chbSignature = new CheckboxFormFieldSignature("chbData1", true);
// テキストフォームフィールドの署名に基づいてオプションをインスタンス化する
FormFieldSignOptions optionsTextCHB = new FormFieldSignOptions(chbSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 270, 0),
    Height = 20,
    Width = 20,
};


// デジタルフォームのフィールド署名をインスタンス化する
DigitalFormFieldSignature digSignature = new DigitalFormFieldSignature("dgData1");
// テキストフォームフィールドの署名に基づいてオプションをインスタンス化する
FormFieldSignOptions optionsTextDIG = new FormFieldSignOptions(digSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 300, 0),
    Height = 50,
    Width = 200,
};

// オプションリストに署名するためのフォームフィールドを追加する
listOptions.Add(optionsTextFF);
listOptions.Add(optionsTextCHB);
listOptions.Add(optionsTextRB);
listOptions.Add(optionsTextCMB);
listOptions.Add(optionsTextDIG);

// ファイルに文書に署名する
signature.Sign(@"C:\Files\Signature\sample_output.pdf", listOptions);
C#を使用して複数のフォームフィールド署名でPDFドキュメントに署名する

C#を使用して複数のフォームフィールド署名でPDFドキュメントに署名する

SignatureクラスのSign()メソッドは、SignOptionsのリストを使用してドキュメントに署名するために使用されます。 SignOptionsクラスでは、外観、署名タイプなどの署名オプションを設定できます。

FormFieldSignOptionsクラスは、PDFドキュメントのフォームフィールド署名オプションを提供します。水平方向の配置、垂直方向の配置、余白、高さ、幅などのフォームフィールドオプションを定義できます。 FormFieldSignOptionsクラスのインスタンスを作成するときに、FormFieldSignatureクラスの1つの定義済みオブジェクトを提供する必要があります。

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

無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。

結論

この記事では、C#を使用してフォームフィールド署名を使用してPDFを作成する方法を学習しました。また、プログラムでさまざまなフォームフィールド署名タイプを使用してPDFドキュメントに電子署名する方法も学習しました。 ドキュメントを使用して、GroupDocs.Signature for.NETAPIの詳細を確認できます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目