製品比較

Itextsharpを使用してC#でPDFにデジタル署名を追加する

更新済み 4月 18, 2023
共有:

PDF文書の署名、PDFファイルを含む。 デジタル署名とは、電子文書の認証と整合性を確保するために使用される数学的な方式を指します。

このチュートリアルでは、あなたに 보여드립니다 PDFにデジタル署名情報を追加する方法 iTextSharpおよびIronPDF for .NETを使用してC#でファイルを IronPDF ライブラリ。

コードに入る前に、デジタル署名とは何か、そしてなぜそれが重要なのかについて簡単に見てみましょう。

デジタル署名とは何ですか?

デジタル署名とは、電子文書の認証と整合性を確保するために使用される数学的な方式を指します。

これは、電子文書にデジタル署名するために使用される電子署名です。 デジタル署名は高いレベルのセキュリティを提供し、多くの国で法的に拘束力があります。

ドキュメントがデジタル署名されると、そのドキュメントに関連付けられたユニークなデジタル署名が作成されます。

この署名は署名者のみが知るプライベートキーを使用して作成されています。 署名キーには、署名者に関する情報が含まれています。これには、名前、メールアドレス、その他の詳細が含まれます。

デジタル署名された文書の真正性を確認するには、受信者が署名者の公開鍵にアクセスできる必要があります。 公開鍵は署名を復号し、その真正性を確認するために使用されます。

デジタル署名が重要な理由とは?

デジタル署名は、セキュリティのレベルを高め、デジタル文書の完全性を確保するために重要です。

彼らは、契約書、合意書、およびその他の法的文書などの署名が必要な状況で一般的に使用されます。

デジタル署名は従来の署名に比べていくつかの利点を提供します:

  1. 彼らは従来の署名よりも安全で改ざん防止されています。

  2. それらは電子的に検証できるため、手動検証の必要性が減ります。

  3. 世界中のどこからでも文書に署名するために使用できます。

  4. 従来の署名よりも高いレベルの保証を提供します。

PDFドキュメントにデジタル署名を追加する方法の比較:itextsharpとIronPDFライブラリを使用してC#での実装

デジタル署名が何であり、なぜ重要かを理解したところで、iTextSharpおよびIronPDFを使用してC#でPDFドキュメントにデジタル署名を追加する方法を見てみましょう。

デジタル署名は電子文書の真正性を確認するために使用され、PDFはそのような文書のための一般的なデータ形式です。

このチュートリアルでは、iTextSharpとIronPDFという2つのC#ライブラリを使用してPDFファイルにデジタル署名を追加する方法を比較します。

電子署名:実際の署名によるデジタルサインの未来

iTextSharpは、C#でPDFドキュメントを作成および操作するための人気のオープンソースライブラリです。

それはデジタル署名のサポートを含んでおり、.NETプロジェクトで広く使用されています。 一方、IronPDFはPDF操作(デジタル署名を含む)に似た機能を提供する商業ライブラリです。

このチュートリアルでは、デジタル署名をPDFドキュメントに追加するために、両方のライブラリの使用方法を示します。デジタル証明書の作成、秘密鍵を使用してPDFドキュメントに署名する方法、および署名の検証といった概念を取り上げます。 各ステップごとにソースコードの例も提供いたします。

前提条件

始める前に、C#プログラミングと.NETフレームワークの基本的な理解を持っている必要があります。

さらに、プロジェクトに iTextSharp ライブラリと IronPDF ライブラリをインストールする必要があります。

iTextSharpをNuGetからダウンロードすることができます。IronPDFはIronPDFのウェブサイトからダウンロードすることができます。

デジタル署名をPDFにプログラムで追加

デジタル証明書の作成

IronPDFは、C#でPDFドキュメントを作成、編集、および署名することを可能にする.NETライブラリです。 このガイドでは、IronPDFとX509Certificate2オブジェクトを使用してPDFに署名するプロセスを説明します。

署名者の詳細を表示

以下は、IronPDF を使用して PDF に署名する手順です:

  1. 名前空間を含めてください。
    using IronPdf; using IronPdf.Signing; using System.Security.Cryptography.X509Certificates;  
    using IronPdf; using IronPdf.Signing; using System.Security.Cryptography.X509Certificates;  
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
VB   C#
  1. ChromePdfRenderer クラスを使用してPDFドキュメントをレンダリングします。
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf("foo");  
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf("foo");  
Dim renderer As New ChromePdfRenderer()
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("foo")
VB   C#

この例では、単一のヘッダー要素を持つシンプルなHTMLドキュメントをレンダリングしています。

![](/static-assets/pdf/blog/add-digital-signature-topdf-in-csharp-using-itextsharp/add-digital-signature-topdf-in-csharp-using-itextsharp-6.webp)
  1. デジタル署名に使用するX509Certificate2オブジェクトを読み込み、PDFに署名します。
    X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);  
    X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);  
Dim cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)
VB   C#

この例では、「IronSoftware.pfx」という名前のPKCS#12ファイルから証明書をロードし、パスワード「123456」を提供しています。 また、PDFの署名に証明書の秘密鍵を使用できるように、X509KeyStorageFlagsを「Exportable」に設定します。

![](/static-assets/pdf/blog/add-digital-signature-topdf-in-csharp-using-itextsharp/add-digital-signature-topdf-in-csharp-using-itextsharp-7.webp) 
  1. 証明書を使用してPdfSignatureオブジェクトを作成します。
    var sig = new PdfSignature(cert);  
    var sig = new PdfSignature(cert);  
Dim sig = New PdfSignature(cert)
VB   C#

この例では、ステップ3で作成した証明書オブジェクトを使用して、新しい PdfSignature オブジェクトを作成しています。

  1. PdfDocument.Signを使用してPDFドキュメントに署名する()メソッドを使用して、ステップ 4 で作成したPdfSignature` オブジェクトを渡します。
  pdf.Sign(sig);  
  pdf.Sign(sig);  
pdf.Sign(sig)
VB   C#
  1. 署名済みのPDFドキュメントをファイルに保存します。
    pdf.SaveAs("signed.pdf");  
    pdf.SaveAs("signed.pdf");  
pdf.SaveAs("signed.pdf")
VB   C#

以下が完全なコードです:

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

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("foo");
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

var sig = new PdfSignature(cert);
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");  
using IronPdf; 
using IronPdf.Signing; 
using System.Security.Cryptography.X509Certificates;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("foo");
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

var sig = new PdfSignature(cert);
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");  
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("foo")
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)

Private sig = New PdfSignature(cert)
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
VB   C#

IronPDF - 今すぐSoftware.com.brで購入

PDFファイルに署名する

デジタル証明書を作成したら、それを使用してPDFファイルに署名できます。

PDFファイルに署名するためには、新しい署名オブジェクトを作成し、そのプロパティを設定する必要があります。具体的には、ページ上の署名の位置や署名の理由などを設定します。

以下のコードを使用して、iTextSharpを使用してPDFファイルに署名できます

iTextSharpは、C#でPDFドキュメントを操作するための人気のあるオープンソースライブラリです。 iTextSharpを使用すると、PDFドキュメントの作成や操作、デジタル署名の追加が可能です。 この書き込みでは、iTextSharpを使用してPDFファイルに署名する方法に焦点を当てます。

まず、プロジェクトに iTextSharp.dll ファイルへの参照を追加する必要があります。 最新バージョンのiTextSharpは公式ウェブサイトからダウンロードできます。

プロジェクトにiTextSharpリファレンスを追加した後、PDFSignerライブラリを使用してPDF文書に署名できます。 PDFSignerライブラリには、CertMetaData、およびPDFSignerの3つのクラスが含まれています。

Cert クラスは、証明書を保持し、署名に必要な情報を抽出するために使用されます。 MetaDataクラスはPDFのメタデータを保持し、PDFSignerクラスは署名を作成してPDFドキュメントに追加するために使用されます。

processCertメソッドはデジタル証明書を読み取り、秘密鍵のエントリを抽出するために使用されます。 また、利用可能な場合はデジタル証明書チェーンも構築します。

Sign メソッドは、PDFStamper を使用して新しい PDF ドキュメントを作成し、署名を追加するために使用されます。 署名の外観を設定し、理由、連絡先、および場所の属性を追加できます。 SetCrypto メソッドは、証明書ファイルから抽出された秘密鍵とチェーン証明書を使用して文書に署名するために使用されます。 最後に、文書に可視署名を追加する必要がある場合は、SetVisibleSignature を使用します。

以下は、iTextSharpを使用してPDFファイルに署名する方法を示すサンプルコードです:

using iTextSharp.text.pdf;
using System.IO; 

public void SignPDF(string inputPDF, string outputPDF, string certPath, string certPassword, string reason, string contact, string location, bool visible) { 
  PdfReader reader = new PdfReader(inputPDF);

  //Activate MultiSignatures
  PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0', null, true); 

  //To disable Multi signatures uncomment this line: 
  //every new signature will invalidate older ones! 

  //PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0'); 

  MetaData metadata = new MetaData();
  metadata.setAuthor("John Doe"); 
  metadata.setTitle("Signed PDF Document");
  st.MoreInfo = metadata.getMetaData();
  st.XmpMetadata = metadata.getStreamedMetaData();
  PdfSignatureAppearance sap = st.SignatureAppearance;

  //Read the certificate and extract the private key entry
  Cert myCert = new Cert(certPath, certPassword);
  sap.SetCrypto(myCert.Akp, myCert.Chain, null, PdfSignatureAppearance.WINCER_SIGNED);
  sap.Reason = reason;
  sap.Contact = contact;
  sap.Location = location; 

  //Add a visible signature to the document if (visible)
  sap.SetVisibleSignature(new iTextSharp.text.Rectangle(100, 100, 250, 150), 1, null);
  st.Close();
}  
using iTextSharp.text.pdf;
using System.IO; 

public void SignPDF(string inputPDF, string outputPDF, string certPath, string certPassword, string reason, string contact, string location, bool visible) { 
  PdfReader reader = new PdfReader(inputPDF);

  //Activate MultiSignatures
  PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0', null, true); 

  //To disable Multi signatures uncomment this line: 
  //every new signature will invalidate older ones! 

  //PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0'); 

  MetaData metadata = new MetaData();
  metadata.setAuthor("John Doe"); 
  metadata.setTitle("Signed PDF Document");
  st.MoreInfo = metadata.getMetaData();
  st.XmpMetadata = metadata.getStreamedMetaData();
  PdfSignatureAppearance sap = st.SignatureAppearance;

  //Read the certificate and extract the private key entry
  Cert myCert = new Cert(certPath, certPassword);
  sap.SetCrypto(myCert.Akp, myCert.Chain, null, PdfSignatureAppearance.WINCER_SIGNED);
  sap.Reason = reason;
  sap.Contact = contact;
  sap.Location = location; 

  //Add a visible signature to the document if (visible)
  sap.SetVisibleSignature(new iTextSharp.text.Rectangle(100, 100, 250, 150), 1, null);
  st.Close();
}  
Imports Microsoft.VisualBasic
Imports iTextSharp.text.pdf
Imports System.IO

Public Sub SignPDF(ByVal inputPDF As String, ByVal outputPDF As String, ByVal certPath As String, ByVal certPassword As String, ByVal reason As String, ByVal contact As String, ByVal location As String, ByVal visible As Boolean)
  Dim reader As New PdfReader(inputPDF)

  'Activate MultiSignatures
  Dim st As PdfStamper = PdfStamper.CreateSignature(reader, New FileStream(outputPDF, FileMode.Create, FileAccess.Write), ControlChars.NullChar, Nothing, True)

  'To disable Multi signatures uncomment this line: 
  'every new signature will invalidate older ones! 

  'PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0'); 

  Dim metadata As New MetaData()
  metadata.setAuthor("John Doe")
  metadata.setTitle("Signed PDF Document")
  st.MoreInfo = metadata.getMetaData()
  st.XmpMetadata = metadata.getStreamedMetaData()
  Dim sap As PdfSignatureAppearance = st.SignatureAppearance

  'Read the certificate and extract the private key entry
  Dim myCert As New Cert(certPath, certPassword)
  sap.SetCrypto(myCert.Akp, myCert.Chain, Nothing, PdfSignatureAppearance.WINCER_SIGNED)
  sap.Reason = reason
  sap.Contact = contact
  sap.Location = location

  'Add a visible signature to the document if (visible)
  sap.SetVisibleSignature(New iTextSharp.text.Rectangle(100, 100, 250, 150), 1, Nothing)
  st.Close()
End Sub
VB   C#

PDFファイルに署名するために、IronPDFを使用して次のコードを使用できます。

PDFファイルに署名するには、次の手順に従ってください:

  1. 必要な名前空間を含める:
    using IronPdf;  
    using IronPdf;  
Imports IronPdf
VB   C#
  1. PdfDocument.FromFileを使用してPDFファイルを読み込みます。() メソッド
    PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");  
    PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");  
Dim pdf As PdfDocument = PdfDocument.FromFile("annual_census.pdf")
VB   C#

次の例では、現在のディレクトリから「annual_census.pdf」という名前のPDFファイルを読み込んでいます。 このメソッドは、読み込まれたPDFファイルを表すPdfDocumentオブジェクトを返します。

  1. PDFファイルに必要な修正を加えます。

    次の例では、PDFファイルにいくつか編集が加えられたと仮定します。

  2. PDFファイルに署名するには、PdfDocument.SignWithFileを使用します。() メソッド
    pdf.SignWithFile("/assets/IronSignature.p12", "password", null, PdfDocument.SignaturePermissions.FormFillingAllowed);  
    pdf.SignWithFile("/assets/IronSignature.p12", "password", null, PdfDocument.SignaturePermissions.FormFillingAllowed);  
pdf.SignWithFile("/assets/IronSignature.p12", "password", Nothing, PdfDocument.SignaturePermissions.FormFillingAllowed)
VB   C#

この例では、"/assets"ディレクトリにある" IronSignature.p12"という名前のPKCS#12ファイルを使用してPDFファイルに署名します。 PKCS#12ファイルのパスワードも第二引数として提供します。 第三の引数はPDFファイルに署名する理由を指定しますが、ここではnullのままにしています。 第4引数は署名の権限を指定しますが、フォームの入力のみを許可するように設定しています。

  1. 署名付きのPDFファイルを改訂版としてPdfDocument.SaveAsRevisionを使用して保存します() メソッド
    PdfDocument pdfWithRevision = pdf.SaveAsRevision();  
    PdfDocument pdfWithRevision = pdf.SaveAsRevision();  
Dim pdfWithRevision As PdfDocument = pdf.SaveAsRevision()
VB   C#

このメソッドは、元のPDFファイルと署名をリビジョンとして含む新しいPdfDocumentオブジェクトを作成します。

  1. PdfDocument.SaveAsを使用して署名済みのPDFファイルをディスクに保存します。() メソッド
    pdfWithRevision.SaveAs("annual\_census\_2.pdf");  
    pdfWithRevision.SaveAs("annual\_census\_2.pdf");  
pdfWithRevision.SaveAs("annual\_census\_2.pdf")
VB   C#

この例では、署名済みPDFファイルのファイル名を現在のディレクトリ内の「annual_census_2.pdf」として保存しています。

こちらが完全なコードです:
    using IronPdf; PdfDocument pdf = PdfDocument.FromFile("annual\_census.pdf"); 
    // make any necessary edits 
    pdf.SignWithFile("/assets/IronSignature.p12", "password", null, PdfDocument.SignaturePermissions.FormFillingAllowed); 
    PdfDocument pdfWithRevision = pdf.SaveAsRevision(); 
    pdfWithRevision.SaveAs("annual\_census_2.pdf");  
    using IronPdf; PdfDocument pdf = PdfDocument.FromFile("annual\_census.pdf"); 
    // make any necessary edits 
    pdf.SignWithFile("/assets/IronSignature.p12", "password", null, PdfDocument.SignaturePermissions.FormFillingAllowed); 
    PdfDocument pdfWithRevision = pdf.SaveAsRevision(); 
    pdfWithRevision.SaveAs("annual\_census_2.pdf");  
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

.NET用IronPDF

デジタル署名の検証

PDFドキュメントに署名が行われた場合、その署名を検証して、署名後にドキュメントが改ざんされていないことを確認できることが重要です。

iTextSharpライブラリを使用したデジタル署名の検証

iTextSharpを使用してC#でPDFのデジタル署名を検証するには、以下の手順に従ってください:

  1. 最初に、iTextSharpライブラリをプロジェクトに追加します。 Visual StudioのNuGetパッケージマネージャーを使用してこれを行うことができます。 iTextSharpを検索してインストールします。

  2. iTextSharpライブラリを使用してPDFドキュメントのデジタル署名を検証する関数を定義します。

  3. 関数内で、確認したいPDFドキュメントのパスを渡してPdfReaderオブジェクトを作成します。

  4. 次に、PdfReaderオブジェクトのGetAcroFieldsメソッドを使用して、PDF文書のAcroFieldsを取得します。

  5. AcroFieldsオブジェクトのGetSignatureNamesメソッドを使用して署名名を取得します。

  6. 署名名を反復処理し、AcroFieldsオブジェクトのGetSignatureメソッドを使用して各署名のPdfPKCS7オブジェクトを取得します。

  7. PdfPKCS7オブジェクトのVerifyメソッドを使用して署名を検証します。

  8. 署名が有効であれば、trueを返します。 それ以外の場合は、falseを返します。

    以下は、C#でiTextSharpを使用してPDFドキュメントのデジタル署名を検証するためのコードです:

public static bool VerifyPdfDigitalSignature(string filePath)
{
    bool isValid = false;

    try
    {
        // Create a PdfReader object
        PdfReader reader = new PdfReader(filePath);

        // Get the AcroFields of the PDF document
        AcroFields fields = reader.AcroFields;

        // Get the signature names
        List<string> names = fields.GetSignatureNames();

        // Iterate through the signature names
        foreach (string name in names)
        {
            // Get the PdfPKCS7 object for the signature
            PdfPKCS7 pkcs7 = fields.VerifySignature(name);

            // Verify the signature
            if (pkcs7.Verify())
            {
                isValid = true;
            }
            else
            {
                isValid = false;
            }
        }

        reader.Close();
    }
    catch (Exception ex)
    {
        // Handle exception
        isValid = false;
    }

    return isValid;
}
public static bool VerifyPdfDigitalSignature(string filePath)
{
    bool isValid = false;

    try
    {
        // Create a PdfReader object
        PdfReader reader = new PdfReader(filePath);

        // Get the AcroFields of the PDF document
        AcroFields fields = reader.AcroFields;

        // Get the signature names
        List<string> names = fields.GetSignatureNames();

        // Iterate through the signature names
        foreach (string name in names)
        {
            // Get the PdfPKCS7 object for the signature
            PdfPKCS7 pkcs7 = fields.VerifySignature(name);

            // Verify the signature
            if (pkcs7.Verify())
            {
                isValid = true;
            }
            else
            {
                isValid = false;
            }
        }

        reader.Close();
    }
    catch (Exception ex)
    {
        // Handle exception
        isValid = false;
    }

    return isValid;
}
Public Shared Function VerifyPdfDigitalSignature(ByVal filePath As String) As Boolean
	Dim isValid As Boolean = False

	Try
		' Create a PdfReader object
		Dim reader As New PdfReader(filePath)

		' Get the AcroFields of the PDF document
		Dim fields As AcroFields = reader.AcroFields

		' Get the signature names
		Dim names As List(Of String) = fields.GetSignatureNames()

		' Iterate through the signature names
		For Each name As String In names
			' Get the PdfPKCS7 object for the signature
			Dim pkcs7 As PdfPKCS7 = fields.VerifySignature(name)

			' Verify the signature
			If pkcs7.Verify() Then
				isValid = True
			Else
				isValid = False
			End If
		Next name

		reader.Close()
	Catch ex As Exception
		' Handle exception
		isValid = False
	End Try

	Return isValid
End Function
VB   C#

上記のコードでは、VerifyPdfDigitalSignature 関数はPDFドキュメントのパスをパラメーターとして取り、デジタル署名が有効かどうかを示すブール値を返します。

以下の関数は、PDFドキュメント内のすべての署名を検証します。 特定の署名のみを検証したい場合は、署名名をパラメーターとして VerifySignature メソッドに渡すことができます。

IronPDFライブラリを使用してデジタル署名を検証する

PDFドキュメントに1つ以上のデジタル署名が含まれている場合、IronPDFを使用して署名の検証を行い、ドキュメントが改ざんされていないことを確認できます。 IronPDFのVerifyPdfSignaturesメソッドを使用して、以下のように実行できます:

  1. PDFドキュメントの読み込み 最初に、IronPDFのPdfDocument.FromFileメソッドを使用してPDFドキュメントを読み込む必要があります。 このメソッドはファイルパスをパラメーターとして受け取り、PDFドキュメントを表すPdfDocumentオブジェクトを返します。
    PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");  
    PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");  
Dim pdf As PdfDocument = PdfDocument.FromFile("annual_census.pdf")
VB   C#
  1. 署名を検証する PdfDocumentオブジェクトを取得したら、ドキュメント内のすべての署名を検証するためにVerifyPdfSignaturesメソッドを呼び出すことができます。 このメソッドは、すべての署名が有効かどうかを示すブール値を返します。
    bool isValid = pdf.VerifyPdfSignatures();  
    bool isValid = pdf.VerifyPdfSignatures();  
Dim isValid As Boolean = pdf.VerifyPdfSignatures()
VB   C#
  1. 結果を処理する VerifyPdfSignaturesメソッドは、ドキュメント内のすべての署名が有効であるかどうかを示すブール値を返します。 値が真である場合、すべての署名が有効であり、文書が改ざんされていないことを意味します。 値が「false」の場合、1つ以上の署名が無効であり、文書が改ざんされている可能性があります。

    この情報を使用して、ユーザーにメッセージを表示したり、ドキュメントの処理を停止したりするなど、適切な対応を取ることができます。

    以下は、IronPDF を使用して PDF ドキュメント内のすべての署名を検証する方法を示す完全なコードスニペットです:

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");
bool isValid = pdf.VerifyPdfSignatures();

if (isValid)
{
    Console.WriteLine("All signatures are valid");
}
else
{
    Console.WriteLine("One or more signatures are invalid");
}
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");
bool isValid = pdf.VerifyPdfSignatures();

if (isValid)
{
    Console.WriteLine("All signatures are valid");
}
else
{
    Console.WriteLine("One or more signatures are invalid");
}
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("annual_census.pdf")
Private isValid As Boolean = pdf.VerifyPdfSignatures()

If isValid Then
	Console.WriteLine("All signatures are valid")
Else
	Console.WriteLine("One or more signatures are invalid")
End If
VB   C#

ライセンスと価格設定

iTextSharpとIronPDFライブラリは異なるライセンスと価格モデルを持っており、プロジェクトの選択時に考慮すべき要素となるかもしれません。

iTextSharpはAffero General Public Licenseの下でライセンスされています。 (AGPL)iTextSharpを使用するすべてのソフトウェアもAGPLの下でライセンスされることを要求するコピーレフトライセンスです。

ただし、iTextSharpには商用ライセンスもあり、開発者はソースコードを公開することなく、専有ソフトウェアでライブラリを使用することができます。

iTextSharpの商用ライセンスの価格は、開発者の人数とデプロイメントインスタンスの数によって異なります。

一方、IronPDFは商用ライブラリであり、使用するには有料ライセンスが必要です。 IronPDFの価格は、iTextSharpと同様に、開発者の数と展開インスタンスの数に基づいています。

しかし、IronPDF もユーザーに 無料試用版 限定された機能を備えており、非商業プロジェクトで使用できる。

以下の観点から 価格設定IronPDFの無料試用版は、いくつかの機能を無償で提供するため、小規模なプロジェクトや予算が限られているプロジェクトにとって、より良い選択肢となる場合があります。

ただし、プロジェクトが大規模であったり、特定のライセンス要件がある場合は、デュアルライセンスモデルとAGPLのサポートがあるため、iTextSharpがより適しているかもしれません。

結論

IronPDFとiTextSharpは、C#でPDFファイルを扱うための2つの人気のあるライブラリです。 両方のライブラリはPDFドキュメントの操作に似た機能を提供しますが、どのライブラリを使用するかを選択する際に開発者が考慮すべきいくつかの違いがあります。

技術的な観点から見ると、IronPDFはPDFファイルを扱うためのシンプルで直感的なAPIを提供する最新の.NETライブラリです。 それは、テキスト、画像、フォーム、およびデジタル署名を含む広範なPDF機能をサポートします。 IronPDF は、HTML から PDF への変換や PDF の編集などの高度な機能も提供します。

一方、iTextSharpはより高度なAPIを持つ成熟したPDFライブラリで、習得するためにはより多くの労力が必要です。 ただし、iTextSharpには高度な機能があり、低レベルのPDF操作や幅広いPDF標準への対応を提供します。

ライセンスに関しては、IronPDFはシンプルな商用ライセンスモデルを提供しており、開発者がソースコードを公開することなく独自のソフトウェアでライブラリを使用することができます。 これにより、開発者はライセンスの遵守を心配することなく、商用プロジェクトでIronPDFを使用しやすくなります。 一方、iTextSharpは、無料のAGPLライセンスと専有ソフトウェア用の商用ライセンスを含むデュアルライセンスモデルを提供しています。 これにより開発者はより柔軟に対応できますが、ナビゲートがさらに複雑になる可能性もあります。

技術的な観点から見ると、IronPDF はよりモダンで直感的な API を提供しており、開発者にとって使いやすい可能性があります。 さらに、IronPDF は、特定のプロジェクトに役立つ可能性のある HTML から PDF への変換や PDF 編集などの高度な機能を提供します。 しかし、iTextSharp は、低レベルの PDF 操作や広範な PDF 規格のサポートなど、より高度な機能を提供します。

IronPDF ユーザーには提供されています。 無料試用 および構文できます ライセンス済み 商業利用向けのLiteパッケージはわずか$499からご利用いただけます。

最後に、IronPDFは開発者向けに特別プロモーションを提供しており、6つのIron Software製品を2つの価格で購入することができます。 アイアンソフトウェア 製品。 これは、開発者に手頃な価格で幅広い強力な.NETライブラリへのアクセスを提供することができます。

< 以前
WindowsでのWkhtmltopdfとIronPDFの比較
次へ >
.NET向けのIronPDFとExpertPDFの比較

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 10,659,073 View Licenses >