透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
デジタル署名は、署名者の身元を認証し、文書の完全性を保証するために使用される数学的アルゴリズムです。 それはドキュメントにリンクされた一意の識別子を作成し、署名者のみが知っている秘密鍵を使用して署名されます。 デジタル署名された文書の真正性を確認するために、受信者は公開鍵を使用して署名を復号し、その有効性を確認します。
この記事では、C#でQuestPDFおよびIronPDFライブラリを使用してPDFドキュメントにデジタル署名を追加する方法を比較します。 どちらのライブラリも、デジタル署名機能を含むPDF操作のための強力な機能を提供しています。
デジタル署名は、ドキュメントの内容が改ざんされていないことを保証し、署名者の身元を証明します。 これは、従来の署名と比べてより高いレベルのセキュリティを提供します。 デジタル署名は多くの国で法的拘束力を持ち、契約、合意書、その他の法的文書で一般的に使用されています。
始める前に、C#と.NET Frameworkの基本的な理解があることを確認してください。 両方のQuestPDFとIronPDFをインストールする必要があります。 QuestPDFはNuGetからインストールでき、IronPDFはIronPDFのウェブサイトまたはNuGetパッケージマネージャーを通じてダウンロードできます。
デジタル署名も用意する必要があります。もしない場合、新しい署名の作成を支援してくれるリソースが数多くあります。
では、これら二つのライブラリがPDFドキュメントにデジタル署名を適用するタスクをどのように処理するかについて、詳しく見ていきましょう。
QuestPDFは、流暢なAPIを使用して複雑なレイアウトを作成することによりPDFドキュメントを生成することに特化したオープンソースのライブラリです。その包括的なレイアウトエンジンのおかげで可能です。PDFの操作にはあまり向いていませんが、PDFに署名を行うために他のツールと組み合わせて使用することができます。 これは、ユーザーがPDFのドキュメント構造を簡単に調べることができるコンパニオンアプリが付属しており、コードの再コンパイルを必要とせずにライブドキュメントのプレビューを提供するホットリロード機能を利用します。
IronPDF は、PDFドキュメントの生成、操作、およびPDFドキュメントへの署名のための強力な機能を提供する堅牢な.NETライブラリです。 .NET開発者向けに、包括的で使いやすいソリューションを求めて設計されています。 IronPDFを使用すると、PDFドキュメントを簡単に暗号化したり、注釈を追加したり、HTMLをPDFに変換したり、コンテンツを抽出したり、その他の機能を利用したりすることができます!
QuestPDFはネイティブでデジタル署名をサポートしていません。 ただし、この機能のために他のライブラリ(例えばBouncyCastleやPdfSharp)と組み合わせることもできます。 QuestPDFで文書を生成した後、iTextSharpのようなPDF署名ツールを提供するライブラリを使用して署名を行うことができますが、QuestPDFライブラリ自体はPDF署名を扱いません。
それは、PDF暗号化の形で他の基本的なPDFセキュリティ形式を提供し、さらには高度なPDF作成およびPDF文書を設計する能力を備えているため、過度な装飾なしで基本的なPDFタスクを処理できるPDFライブラリを探している人にとって、依然として実行可能な選択肢となり得ます。
IronPDF は、デジタル証明書で PDF を署名するためのシンプルな API を提供します。 次のコードは、IronPDFを使用してPDFファイルに電子署名を適用する方法を示しています。
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
public class Program
{
static void Main(string[] args)
{
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);
var sig = new PdfSignature(cert);
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
}
}
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
public class Program
{
static void Main(string[] args)
{
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);
var sig = new PdfSignature(cert);
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
}
}
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
Public Class Program
Shared Sub Main(ByVal args() As String)
Dim pdf As PdfDocument = PdfDocument.FromFile("invoice.pdf")
Dim cert As New X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable)
Dim sig = New PdfSignature(cert)
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
End Sub
End Class
このコードは、IronPDFとX.509証明書を使用してPDFドキュメントにデジタル署名する方法を示しています。 まず、既存のPDFファイル(invoice.pdf)をPdfDocumentオブジェクトに読み込みます。 次に、パスワード(Passw0rd)を提供し、必要に応じて証明書の秘密鍵をエクスポート可能にするためにX509KeyStorageFlags.Exportableフラグを設定して、.pfxファイル(IronSoftware.pfx)から証明書をロードします。
次に、読み込まれた証明書を使用して PdfSignature オブジェクトが作成されます。 この署名がPDFドキュメントに適用され、実質的に署名されます。 最後に、署名されたPDFが新しいファイルとしてsigned.pdfに保存されます。 このプロセスは、PDFが安全に署名され、その真正性と完全性が検証されることを保証します。
IronPDFは、デジタル署名を検証する簡単な方法も提供します。 VerifyPdfSignatures メソッドを呼び出して、ドキュメント内の署名の有効性を確認できます。
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("signed_test_document.pdf");
bool isValid = pdf.VerifyPdfSignatures();
if (isValid)
{
Console.WriteLine("The digital signature is valid.");
}
else
{
Console.WriteLine("The digital signature is invalid or missing.");
}
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("signed_test_document.pdf");
bool isValid = pdf.VerifyPdfSignatures();
if (isValid)
{
Console.WriteLine("The digital signature is valid.");
}
else
{
Console.WriteLine("The digital signature is invalid or missing.");
}
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("signed_test_document.pdf")
Private isValid As Boolean = pdf.VerifyPdfSignatures()
If isValid Then
Console.WriteLine("The digital signature is valid.")
Else
Console.WriteLine("The digital signature is invalid or missing.")
End If
このメソッドは、ドキュメント内のすべての署名が有効である場合はtrueを返し、署名が無効または欠落している場合はfalseを返します。
使いやすさ:IronPDFは、PDFに署名するためのAPIがQuestPDFと比べて非常に簡単です。 QuestPDFはデジタル署名のネイティブサポートを提供しておらず、この機能には外部ライブラリ(例:BouncyCastle)が必要です。 これに対して、IronPDFにはPDFの署名と検証のための組み込みメソッドがあり、デジタル署名を実装するのがより簡単です。
証明書管理: 両方のライブラリは証明書を扱うことができますが、IronPDFは組み込みメソッド(例: SignWithFile)を通じて直接処理し、プロセスを簡素化します。 さらに、QuestPDF では提供されていないすべての署名の権限を指定することもできます。 数行のコードでIronPDFを使用してPDF文書に署名します。
デジタル署名の検証: IronPDF は、PDF 内のデジタル署名の有効性を確認するための簡単な方法(VerifyPdfSignatures)を提供しますが、QuestPDF にはこの機能がなく、署名の検証には外部ライブラリに依存しています。
ライセンスと費用: QuestPDFは、無料で使用できるオープンソースライブラリです。 これはデジタル署名サポートのような高度な機能を欠くという代償が伴います。 IronPDFは開発用に無料で使用でき、これを超えて商用ライセンスのためのさまざまな価格帯を提供しており、購入前に試すことができます。
要約すると、QuestPDFは複雑なレイアウトのPDF作成に優れていますが、デジタル署名のネイティブサポートがなく、この機能にはBouncyCastleのような外部ライブラリが必要です。 対照的に、IronPDFはデジタル署名の署名と検証のための統合ソリューションを提供し、よりシンプルで効率的なプロセスを実現します。
組み込みのデジタル署名機能を備えた完全なPDFソリューションを必要とする開発者にとって、IronPDFは幅広い機能、豊富なドキュメントなどを備えているため、より優れた選択肢です。 ただし、QuestPDFはPDF生成のための強力なオープンソースの選択肢として残っていますが、デジタル署名には追加の複雑さが必要です。 最終的な決定はプロジェクトのニーズと望ましいシンプルさのレベルに依存します。