IRONSOFTWAREHOME
PDF ツール

この記事では、PDFのテキストを編集する方法を案内します。

Curtis Chau
Curtis Chau
Updated: 2026年9月17日

デジタル署名は、電子文書の真偽性と整合性を確認する数学的な手法です。 これは、いくつかの管轄区域で文書に電子署名を施すための電子的な署名として機能し、高いセキュリティと法的有効性を確保します。

デジタル署名は、署名者のみに知られている秘密鍵を使用して作成されます。 この秘密鍵は、署名時に文書にリンクされたユニークなデジタル署名を確立します。 署名には、署名者の名前、メールアドレス、およびその他の個人情報が含まれています。 デジタル署名された文書の真偽を確認するために、受取人は署名者の公開鍵へのアクセスが必要です。 署名の正当性は、公開鍵を使用して復号化することによって検証されます。

このチュートリアルでは、PDFsharpとIronPDFを使用してPDF文書にデジタル署名を追加する方法を比較します。 デジタル署名は文書の真正性を確認するために不可欠であり、PDFファイルはこのような操作において人気のある形式です。

PDFSharpはPDF作成と操作のためのよく知られたオープンソースライブラリであり、IronPDFは同様の機能を提供しつつ追加の高度な機能を備えた強力な.NET PDFライブラリです。

このガイドでは、PDF文書に秘密鍵で署名し、署名を検証する方法を扱い、両方のライブラリの例も示します。

なぜデジタル署名が重要なのか?

デジタル署名は文書の統合性を確保し、堅牢なセキュリティを提供します。 通常、契約書、合意書、およびその他の法的文書に使用されます。

主な利点:

  • 従来の署名よりも安全で改ざんされにくい。
  • 電子的に検証され、手動の検証努力を削減。
  • ドキュメントを世界中でリモートで署名可能。
  • 従来の署名よりも高い保証を提供。

PDFSharp概要

PDFsharpは、主にPDF文書の作成と操作のために設計されたオープンソースのC#ライブラリです。 これは、簡単なPDFファイルの生成、既存の文書の編集、グラフィックの描画など、基本的なPDFタスクに広く使用されています。 ただし、デジタル署名のような高度な機能に対するネイティブサポートが限られており、開発者はしばしばBouncyCastleのようなサードパーティライブラリに依存してこれらの機能を統合する必要があります。 PDFSharpはMITライセンスの下でオープンソースであり、コストと柔軟性が優先されるプロジェクトには良い選択肢です。

主な機能

  • オープンソースでMITライセンスの下で無料。
  • 基本的なPDFの作成と操作。
  • 外部ライブラリ(例:BouncyCastle)を使用してデジタル署名を拡張可能。
  • HTMLからPDFへの変換や複雑なフォーム処理などの高度なPDF機能の即時サポートが欠如しています。

IronPDFの概要

IronPDFは、PDFの生成、編集、および操作のためのシンプルで強力なAPIを提供する堅牢な.NET PDFライブラリです。 その注目すべき機能の1つは、開発者が文書の真正性を確認するためにデジタル署名を簡単に実装できることです。 デジタル署名に加えて、IronPDFはHTMLからPDFへの変換、透かし、およびフォーム処理などの高度な機能をサポートしています。 商用プロジェクトで迅速な実装と強力な機能を優先する開発者に特に価値があります。

主な機能

  • 商用ライセンスでは有料サポートと無料のトライアルが利用可能。
  • 使いやすいAPIで、デジタル署名や文書操作のための最新機能を提供。
  • HTMLからPDF形式への変換、フォーム処理、およびPDF注釈(添付注釈など)に対する組み込みサポートを含む。
  • タイムスタンプ、視覚署名画像、および暗号化などの高度な機能とのシームレスな統合。

PDFSharpでプログラム的にデジタル署名を追加する方法

PDFSharpはC#でのPDF作成と操作用に設計されたオープンソースライブラリです。 ただし、署名を追加するサポートを提供している一方で、PDF文書の安全で正確なデジタル署名を保証するためにBouncyCastleのようなサードパーティツールを統合する必要があります。

PDFSharpでデジタル署名を追加する手順

  1. PDFSharpとBouncyCastleをNuGet経由でインストールする。
  2. X509Certificate2を使用してデジタル証明書を作成する。
  3. BouncyCastleでPDFに署名する。

サンプルコード

using System;
using System.IO;
using System.Security.Cryptography.X509Certificates;
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using BouncyCastleSigner; // Hypothetical namespace for illustration
// Ensure that you have the appropriate namespaces added

class Program
{
    static void Main(string[] args)
    {
        // Create a font for the appearance of the signature
        var font = new XFont("Verdana", 10.0, XFontStyle.Regular);

        // Create a new PDF document
        var document = new PdfDocument();
        var pdfPage = document.AddPage();

        // Prepare graphics for drawing on the PDF page
        var xGraphics = XGraphics.FromPdfPage(pdfPage);
        var layoutRectangle = new XRect(0.0, 0.0, pdfPage.Width.Point, pdfPage.Height.Point);

        // Add some text to the page
        xGraphics.DrawString("Signed sample document", font, XBrushes.Black, layoutRectangle, XStringFormats.TopCenter);

        // Define digital signature appearance options
        var options = new DigitalSignatureOptions
        {
            ContactInfo = "John Doe",
            Location = "Seattle",
            Reason = "License Agreement",
            Rectangle = new XRect(36.0, 700.0, 400.0, 50.0),
            AppearanceHandler = new SignatureAppearanceHandler()
        };

        // Sign the document using BouncyCastle signer
        var pdfSignatureHandler = DigitalSignatureHandler.ForDocument(document,
            new PdfSharp.Snippets.Pdf.BouncyCastleSigner(GetCertificate(), PdfMessageDigestType.SHA256), options);

        // Save the signed document
        document.Save("PdfSharpSignature.pdf");
    }

    static (X509Certificate2, X509Certificate2Collection) GetCertificate()
    {
        // Locate the certificate file and read its data
        var certFolder = "C:\\Users\\kyess\\AppData\\Roaming\\Adobe\\Acrobat\\DC\\Security";
        var pfxFile = Path.Combine(certFolder, "IronSoftware.pfx");
        var rawData = File.ReadAllBytes(pfxFile);

        // Load the certificate using its password (example password)
        var certificatePassword = "Passw0rd";
        var certificate = new X509Certificate2(rawData, certificatePassword,
            X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

        // Create and return the certificate collection
        var collection = new X509Certificate2Collection();
        collection.Import(rawData, certificatePassword,
            X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
        return (certificate, collection);
    }
}

出力

PDFSharp デジタル署名PDF vs IronPDF(コード例):図2

ここに示されているように、デジタル署名フィールドを作成し、新しい文書に証明書を適用することができましたが、そのプロセスは広範で手動的であり、実装する際にIronPDFのようなライブラリと比較して効率的ではありません。

IronPDFを使ってデジタル署名を追加する

IronPDFは開発者にデジタル署名されたPDF文書のための簡潔な方法を提供します。

using IronPdf;
using System.Security.Cryptography.X509Certificates;

public class Program
{
    static void Main(string[] args)
    {
        // Load the certificate with its password
        var sig = new PdfSignature("IronSoftware.pfx", "your-password");

        // Configure additional signature details
        sig.TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256;
        sig.TimestampUrl = "http://timestamp.digicert.com";
        sig.SignatureImage = new PdfSignatureImage("IronPdf.png", 0, new Rectangle(150, 100, 200, 200));

        // Sign and save the PDF document
        sig.SignPdfFile("output.pdf");
    }
}

出力

PDFSharp デジタル署名PDF vs IronPDF(コード例):図3

このコードは、IronPDFのPdfSignatureクラスを使用してPDF文書に署名する方法を示しています。 プログラムはまず、.pfx証明書ファイルの場所とそのパスワードを指定してPdfSignatureオブジェクトを作成します。 その後、ハッシュアルゴリズム(SHA256)、タイムスタンプURL、および署名用のカスタム画像(IronPDF.png)などの追加署名プロパティを設定します。

最後に、SignPdfFileメソッドを呼び出して、PDF文書にデジタル署名を適用し、output.pdfとして保存します。 このプロセスは、タイムスタンプとビジュアルイメージとともにデジタル署名を埋め込むことによってPDFの整合性と真正性を保証します。

PDFシャープ:

  • MITライセンスのもとでオープンソース。
  • デジタル署名のような高度な機能のために外部ライブラリ(例: BouncyCastle)を必要とします。

IronPDF:

結論: C&#35でのデジタル署名におけるIronPDF vs PDFSharp

IronPDFとPDFSharpを比較する際に、C#でPDFにデジタル署名を追加する場合、どちらのライブラリもプロジェクトのニーズに応じて異なる利点を提供します。

  • IronPDFは、PDFにデジタル署名を適用するためのシンプルで使いやすいAPIを求める独立したフリーランスソフトウェア開発者や企業で働く開発者に最適であり、最新の機能を備えています。 デジタル署名の適用、HTMLからのPDF変換、およびその他のPDF機能とのシームレスな統合により、使いやすさと迅速な実装を優先する商業プロジェクトに最適です。 有料サポートと明確な商用ライセンス構造により、IronPDFは使いやすく、信頼性の高いソリューションを必要とする企業に適しています。

  • PDFSharpは基本的なPDF作成と操作に優れていますが、IronPDFが提供する高度な機能やデジタル署名の直接的なサポートには欠けています。 PDFSharpはオープンソースで無料で使用できますが、デジタル署名に関する操作はIronPDFに比べて直感的ではなく、これらの機能を処理するために追加のソリューションやサードパーティライブラリを採用する必要がある場合があります。

要約すると、IronPDF はデジタル署名および関連するPDFタスクのためのシンプルで迅速なソリューションを求める開発者に最適な選択肢であり、特に商業環境で。 PDFSharpは基本的なPDFタスクにはより適しているが、デジタル署名のための同じ使いやすさと機能セットを持たず、よりシンプルなプロジェクトまたは追加のカスタマイズが必要なプロジェクトにより適している。

ご注意: PDFSharpとBouncyCastleはそれぞれの所有者の登録商標です。 このサイトはPDFSharpまたはBouncyCastleと提携しておらず、承認または支援を受けていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から