2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C#でPDFファイルに電子署名する

Posted at

PDF文書に電子署名を追加することは、金融、法律、医療など多くの業界で一般的な要件です。こ れは文書の真正性と完全性を保証 し 、 署名者の ID を検証す る 手段を提供 し ます。
この記事では、無料の.NET PDFライブラリを使用して、C#でPDFに電子署名を追加する方法を探ります。

C#でPDFに電子署名するための無料ライブラリ

PDFに電子署名を追加するには、Free Spire.PDF for .NETライブラリを使用する必要があります。以下のリンクからダウンロードするか、Nuget経由で直接インストールしてください。

C#でPDFに電子署名する方法

証明書を使ってPDFに署名するには、まず有効なpfx証明書ファイルを読み込み、次に PdfSignature オブジェクトを作成し、PdfSignature.DocumentPermissions プロパティを通してドキュメントのパーミッションを設定する必要があります。

以下は、C#でPDFに電子署名を追加するコードサンプルです:

using Spire.Pdf;
using Spire.Pdf.Security;

namespace AddInvisibleSignature
{
    class Program
    {
        static void Main(string[] args)
        {
            //サンプルPDFファイルを読み込む
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("sample.pdf");

            //証明書を読み込む
            PdfCertificate cert = new PdfCertificate("cert.pfx", "123");

            // PdfSignatureオブジェクトを作成する
            PdfSignature signature = new PdfSignature(pdf, pdf.Pages[doc.Pages.Count - 1], cert, "cert");

            //文書の変更は禁止するが、フォームへの記入は許可するよう、文書パーミッションを設定する。
            signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill;

            // PDFファイルを保存する
            pdf.SaveToFile("PDFSignature.pdf");
            pdf.Close();
        }
    }
}

出力結果:
DigitallySignPDF.png


✍ 上の コ ー ド は、 PDF 文書に不可視の証明書に基づ く 署名を追加す る こ と に よ っ て PDF フ ァ イ ルに電子署名を行 う 方法を示 し てい ます。

こ れに加え て、 Free .NET PDF API は、 可視署名 (テ キ ス ト ・ 画像を含む) を PDF に追加す る こ と も サポー ト し てい ます。包括的なガイドが以下にあります:
C#でPDFにテキストまたは画像で電子署名する

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?