デジタル署名は、ドキュメントの信頼性を検証するための信頼できるスキームです。電子署名を実装するために、デジタル署名がよく使用されます。この記事では、C#を使用してPDFおよびWord文書にデジタル証明書で電子署名する方法を学習します。

デジタル署名と証明書用の.NETAPI

デジタル証明書を使用してドキュメントに署名するには、この記事のC#の例でGroupDocs.Signature for .NETAPIを使用します。このAPIは、PDFドキュメントの署名に加えて、ワードプロセッシングドキュメントおよびスプレッドシート形式のデジタル署名をサポートします。

ダウンロードセクションからDLLまたはMSIインストーラーをダウンロードするか、NuGetを介して.NETアプリケーションにAPIをインストールします。

PM> Install-Package GroupDocs.Signature

C#でデジタル証明書を使用してPDFに署名する

環境を設定した後、ドキュメントの署名が成功するまで数行かかります。次の手順に従って、C#を使用して利用可能なデジタル証明書でドキュメントに署名します。

  • 署名するドキュメントでSignatureオブジェクトを初期化します。
  • 証明書ファイルを使用してDigitalSignOptionsオブジェクトを初期化します。
  • パスワードや位置などの必要な署名オプションを設定します。
  • Signメソッドを呼び出して、デジタル証明書でドキュメントに署名します。

次のコード例は、C#の証明書を使用してPDFドキュメントに署名します。

// C#でデジタル証明書を使用してPDFに署名する
using (Signature signature = new Signature("document.pdf"))
{
    DigitalSignOptions options = new DigitalSignOptions("certificate.pfx");
    {
        ImageFilePath = "sampleImage.jpg", // Optional - Set image file path
        Left = 50,                    // Set signature position
        Top = 50,
        Password = "GroupDocs"       // Set Password
    };
    signature.Sign("signedDocument.pdf", options);
}

C#のカスタム外観を使用してデジタル署名で署名する

デジタル署名は、さまざまな表現を持つようにカスタマイズできます。パーソナライズされた外観の場合、PdfDigitalSignatureAppearanceクラスを使用して、次のオプションをカスタマイズできます。

  • バックグラウンド
  • 連絡先情報
  • 署名日
  • デジタル署名
  • 位置
  • 理由
  • フォントファミリー
  • フォントサイズ

さらに、次のプロパティを変更できます。

  • 身長
  • ボーダースタイル
  • すべてのページまたは非表示に表示
デジタル証明書でPDFに署名

C#でGroupDocs.Signaturefor.NETを使用してデジタル証明書で署名されたPDFドキュメント

次の例では、上記のプロパティのほとんどすべてを使用しています。この例では、C#を使用してPDFドキュメントのデジタル署名の外観をカスタマイズします。

// カスタムの外観と設定でC#のデジタル証明書を使用してPDFに署名します
using (Signature signature = new Signature("document.pdf"))
{
    DigitalSignOptions options = new DigitalSignOptions("certificate.pfx")
    {
        Password = "GroupDocs",
        // デジタル証明書の詳細
        Reason = "Approved",
        Location = "New York",

        // カスタムPDF署名の外観
        Appearance = new PdfDigitalSignatureAppearance()
        {
            // 連絡先の詳細を表示しない
            ContactInfoLabel = string.Empty,
            // 理由ラベルを簡素化する
            ReasonLabel = "?",
            // ロケーションラベルの変更
            LocationLabel = "From",
            DigitalSignedLabel = "By",
            DateSignedAtLabel = "On",
            Background = Color.Red
        },
        AllPages = true,
        Width = 160,
        Height = 80,
        // 署名枠を設定する
        Border = new Border()
        {
            Visible = true,
            Color = Color.Red,
            DashStyle = DashStyle.DashDot,
            Weight = 2
        }
    };
    SignResult signResult = signature.Sign("signedDocument.pdf", options);
}

C#でデジタル証明書を使用してWordドキュメントに署名する

同様に、証明書を使用してWord文書に署名できます。 Signatureオブジェクトの初期化を開始するときに、適切なドキュメントを提供するだけです。

  • 署名するWord文書でSignatureオブジェクトを初期化します。
  • 証明書ファイルを使用してDigitalSignOptionsオブジェクトを初期化します。
  • パスワードや位置などの署名オプションを設定します。
  • 署名方式でデジタル証明書に署名してください。

この例では、C#の証明書を使用してWord文書に署名します。

// C#でデジタル証明書を使用してWord文書に署名する
using (Signature signature = new Signature("document.docx"))
{
    DigitalSignOptions options = new DigitalSignOptions("certificate.pfx");
    {
        ImageFilePath = "sampleImage.jpg", // Optional - Set image file path
        Left = 50,                    // Set signature position
        Top = 50,
        Password = "GroupDocs"       // Set Password
    };
    signature.Sign("signedDocument.docx", options);
}

結論

この記事では、C#を使用してデジタル証明書を使用してPDFおよびWord文書に電子署名する方法を学習しました。さらに、署名の外観を簡単にカスタマイズできます。これで、C#でカスタム表示されるデジタル証明書を使用してPDFおよびWordドキュメントに署名するための独自の.NETアプリケーションを構築してみることができます。

署名APIの詳細については、クイックリンク

関連項目