iTextSharp C# HTML から PDF への代替 .NET Core
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.
.NET PDF ライブラリの包括的な比較 - 証拠に基づくコンテキストで機能ごとに比較
| 特徴 | iTextSharp / iText7 | IronPDFPDF✦ |
|---|---|---|
| PDF Creation & Conversion | ||
| HTML/CSSからPDFへ |
$ Paid Add-on
`pdfHTML`アドオン経由の HTML → PDF (別パッケージ、AGPL/商用モデル)。
|
✓ Yes
ピクセルパーフェクトな CSS3、Flexbox、グリッド レンダリングが組み込まれた Chromium ベースのエンジン。
|
| JavaScriptの実行 |
? Unknown
pdfHTML では HTML/CSS → PDF 変換について説明していますが、ドキュメントには JS 実行のサポートは記載されていません。
|
✓ Yes
レンダリング中に JS を完全に実行します (動的チャート、SPA、インタラクティブ コンテンツ)。
|
| プログラムによる生成 |
✓ Yes
.NET用のプログラム可能な PDF SDK として位置付けられており、作成、編集、拡張を行うことができます。
|
✓ Yes
HTML テンプレート、文字列、ASPX ビュー、または画像から生成します。レイアウトは Chromium が処理します。
|
| URLからPDFへ |
$ Paid Add-on
URL フェッチを備えた pdfHTML アドオン経由では可能ですが、コア機能ではありません。
|
✓ Yes
`RenderUrlAsPdf()` 完全な CSS/JS レンダリングを使用して、あらゆるライブ URL をキャプチャします。
|
| DOCXからPDF |
✕ No
ネイティブの Word 変換はありません。iText は PDF ネイティブ SDK です。
|
✓ Yes
`DocxToPdfRenderer` 構造と書式を保持したまま Word 文書を変換します。
|
| Reading & Extraction | ||
| テキスト抽出 |
✓ Yes
`PdfTextExtractor.GetTextFromPage()` 複数の抽出戦略を備えています。
|
✓ Yes
レイアウトを考慮しながらテキストを抽出します。スキャンしたドキュメントにはIronOCRと組み合わせることができます。
|
| ページを画像にレンダリングする |
? Unknown
OCR ワークフローではレンダリングについて言及されていますが、引用されている iText ドキュメントにはプライマリソースの"PDF → 画像レンダラー"モジュールは示されていません。
|
✓ Built-in
設定可能な DPI による PNG、JPEG、BMP へのネイティブ ラスタライズ。
|
| 内蔵OCR |
$ Paid Add-on
pdfOCR アドオンが利用可能です。インストール ノートには、プラットフォーム固有/ネイティブの依存関係 (Linux/macOS ランタイム要件など) が記載されています。
|
✓ Via IronOCR
スキャンされた PDF で 127 以上の言語の OCR を実行するためのIronOCRとのネイティブ統合。
|
| Editing & Manipulation | ||
| Merging & Splitting |
✓ Yes
`PdfMerger` .NET API のクラス。公式の例では、PdfMerger によるマージについて説明しています。
|
✓ Yes
直感的な API を使用して、1 行の結合、分割、追加、先頭への追加、ページの並べ替えを行います。
|
| Headers, Footers & Page Numbers |
✓ Yes
PDF Association リストには、既存の PDF に"ページ番号"や同様の機能を追加できることが記載されています。
|
✓ Yes
自動ページ番号、日付、カスタム コンテンツを含む HTML ベースのヘッダー/フッター。
|
| ウォーターマーク |
✓ Yes
PDF Association のリストには、"既存の PDF ドキュメントへの透かし"が明示的に含まれています。
|
✓ Yes
`ApplyWatermark()` HTML/CSS を受け入れ、不透明度、回転、位置を完全に制御できます。
|
| Stamp Text & Images |
✓ Yes
iText のキャンバスおよびレイアウト API を介してプログラムによるコンテンツ配置が利用可能。
|
✓ Yes
`TextStamper` & Google Fonts、配置、ページごとの制御を備えた`ImageStamper` 。
|
| コンテンツを編集する |
✓ Yes
iText は、クリーンアップ モジュールを介して編集注釈のサポートを提供します。
|
✓ Yes
`RedactTextOnAllPages()` 1 行内の機密テキストを永久に削除します。
|
| Security & Compliance | ||
| Encryption & Passwords |
✓ Yes
iText のセキュリティ API による完全な暗号化と権限制御。
|
✓ Yes
AES 暗号化、所有者/ユーザー パスワード、きめ細かな権限 (印刷、コピー、注釈)。
|
| デジタル署名 |
✓ Yes
専用のデジタル署名ドキュメントと署名 API ( `PdfSigner` )。
|
✓ Yes
`PdfSignature` X509/PFX 証明書をサポートします。
|
| PDF/A & PDF/UA Compliance |
✓ Yes
ドキュメントでは PDF/A の作成について説明し、制約について説明します (既存のものからの変換は自動ではありません)。
|
✓ Yes
エンタープライズでの使用に適したネイティブ PDF/A アーカイブおよび PDF/UA アクセシビリティ準拠。
|
| Platform & Deployment | ||
| クロスプラットフォームサポート |
✓ Yes
.NET Standard 2.0 / .NET Framework 4.6.1 — さまざまな OS for .NET 6 以降で実行されます。
|
✓ Yes
Windows、Linux、macOS、x64、x86、 .NET 6~10、Core、Standard 2.0+、Framework 4.6.2+。
|
| サーバー / Docker / クラウド |
~ Complex
コアインストールには複数のパッケージ (iText + Bouncy Castle アダプター) が必要です。アドオン (pdfHTML/pdfOCR) はさらに依存関係/コンプライアンス手順を追加します。
|
✓ Yes
Docker、Azure、AWS、IIS。公式Dockerイメージとデプロイメントガイド。
|
| セットアップの容易さ |
~ Complex
コアのインストールには複数のパッケージ (Bouncy Castle アダプター) が必要です。HTML/OCR には追加のアドオンと、場合によってはネイティブ依存関係が必要です。
|
✓ Simple
`Install-Package IronPdf` NuGetコマンド1つで、数分で準備完了です。
|
| Licensing & Support | ||
| ライセンスモデル |
~ Complex
デュアルライセンス:AGPLv3(ネットワーク利用におけるソースコード開示義務)または商用ライセンス。AGPLはプロプライエタリアプリには制限がある場合があります。
|
✓ Commercial
永久ライセンス。30 日間の全機能無料トライアル、透かしなし。
|
| Commercial Support & SLA |
✓ Yes
iText サイトには、ライセンス モデルの一部として商用ライセンス + サポート契約が含まれています。
|
✓ 24/5 Support
SLA 保証付きの専用エンジニアリング サポート (電子メール、ライブ チャット、電話)。
|
| ドキュメント |
✓ Yes
インストール ガイド、ナレッジ ベースの記事、API リファレンス (コア + アドオン) が利用可能です。
|
✓ Extensive
完全な API リファレンス、100 以上のハウツー、チュートリアル、コード例、トラブルシューティング、ビデオ。
|
データは、公式の iText ドキュメント、PDF 関連付けリスト、およびNuGetパッケージ参照から取得されています。
iText7 は強力ですが、AGPL ライセンスの複雑さと複数パッケージのセットアップのオーバーヘッドを伴います。
IronPDF は、より簡単なセットアップで完全なカバレッジを提供します。30 日間無料でお試しください。
PDFを扱う開発者にとって、信頼できるPDF生成と操作のためのライブラリを持つことは不可欠です。 まず、.NETエコシステムでは、選択肢として多数のC#のPDFライブラリが存在します。それでは、どれがあなたのニーズに最適かをどう選択しますか?
PDF機能を備えた.NETアプリケーションで作業する際には、適切なライブラリを選択することが、効率的な開発にとって非常に重要です。 この記事では、C#の2つの主要なPDFライブラリであるIronPDFとiText 7(以前はiTextSharpとして知られていた)を詳細に比較します。 彼らの機能、パフォーマンス、ライセンス、さまざまなプロジェクト要件への適合性を探り、情報に基づいた意思決定を支援します。
なぜ.NET PDFライブラリを選択するのか?
PDFはレポート、請求書、法的文書で広く使用されており、PDFの生成と操作は多くのアプリケーションにとって重要です。 ライブラリを選択する際に考慮すべき重要な要素には次のものがあります:
- 統合の容易さ — PDF機能をどれくらいすばやく実装できますか?
- HTMLからPDFへのサポート — ウェブコンテンツから簡単に変換できるか?
- ライセンスとコスト — 無料か、有料の商用ライセンスが必要か?
- 機能セット — テキスト抽出、署名、編集をサポートしているか?
- パフォーマンス — PDF生成や処理の速さはどうか?
IronPDFとiText7の概要
IronPDFの紹介
IronPDFは特に.NET開発者のために設計された商用PDFライブラリです。 これはPDFの生成、操作、変換を簡素化しており、その使いやすさからC#アプリケーションでの使用が非常に便利です。
IronPDFは.NET Core、.NET Framework、.NET Standardをサポートしており、さまざまな.NET環境での互換性を保証します。 その高いプラットフォーム間の互換性から、異なるアプリ環境で働くチームにとって理想的な選択肢となり、Visual StudioのようなIDEともスムーズに統合されます。 .NETバージョン以外にも、IronPDFはJava、Python、Node.jsでも利用可能です。
主な特徴:
- 組み込みのHTMLからPDFへのサポート — ウェブページ、HTML、CSS、およびJavaScriptを追加モジュールなしでPDFに変換。
- PDF編集 — 既存のPDFにテキスト、画像、ヘッダー、フッターを追加して変更。
- PDFセキュリティ - PDFを暗号化し、パスワード保護を設定し、表示、印刷、編集のための権限を管理します。
- 透かしと注釈 — テキストと画像の透かし、スタンプ、またはコメントを簡単に適用。
- フォームの記入とデータ抽出 - インタラクティブなPDFフォームをプログラムで入力し、フォームデータを抽出します。
おすすめ: 追加モジュールや複雑なライセンスの手間をかけずに、シンプルですべてが揃ったソリューションを求める開発者。
iText7の紹介
iText7は強力で柔軟なPDFライブラリであり、文書の作成、暗号化、署名を含む広範なPDF操作機能を提供します。 しかし、そのコアライブラリはHTMLからPDFへの変換をネイティブサポートしていません。
主な機能
- 低レベルのPDFカスタマイズ — PDF構造、メタデータ、レンダリングの詳細な制御を提供。
-
- アクセシビリティとコンプライアンス: 長期的なアーカイブとアクセシビリティコンプライアンスのためにPDF/A、PDF/UA、PDF/Xを生成します。
-
- HTMLからPDFへの変換: 有料のpdfHTMLアドオンによりHTMLコンテンツのPDFへの変換が可能。
- Java&.NETサポート: 主にJava用に設計され、C#サポートは.NET向けiText 7で提供。
-
- PDFフォーム管理: インタラクティブPDFフォームのためにAcroFormsおよびXFAフォームを作成および編集します。
-
おすすめ対象:高度にカスタマイズ可能なPDFソリューションが必要で、追加機能のためにアドオンを購入する意思のある開発者。
機能と利点
機能とその関連コード例を紹介する前に、IronPDFとiText 7の間の最大の機能的違いであるHTMLからPDFへの変換についてまず確認します。
- IronPDF はHTML、CSS、JavaScriptのレンダリングを追加コンポーネントなしでサポートします。
- iText 7 は対照的に、pdfHTMLアドオンが必要で、これは商用ライセンス下の有料機能です。 これはweb-to-PDF機能を必要とする開発者のコストを増加させます。

結論: HTMLからPDFへの変換が必要な場合には、IronPDFがコスト効率の高いソリューションで、標準でこの機能を含んでいます。
IronPDFの主な機能(コード例付き)
IronPDFはPDFドキュメントで作業するための豊富な機能セットを誇ります。 これにはPDFの作成からPDFの操作、セキュリティが含まれます。 このライブラリが提供する豊富な機能の範囲をより明確に理解するために、いくつかの主要な機能を見ていきます。
HTMLからPDFへの変換
HTMLコンテンツを IronPDFの強力なレンダリングエンジンを使用して高品質のPDFドキュメントに変換します。 IronPDFのレンダラーは単にHTMLコンテンツを変換するだけではありません; これにより、すべての元のCSSスタイリングおよびJavaScriptのインタラクティビティを維持できます。
using IronPdf;
public class Program
{
static void Main(string[] args)
{
// Create a new ChromePdfRenderer instance for rendering HTML to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified HTML file as a PDF document
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("example.html");
// Save the rendered PDF to the specified file path
pdf.SaveAs("HtmlToPdf.pdf");
}
}
using IronPdf;
public class Program
{
static void Main(string[] args)
{
// Create a new ChromePdfRenderer instance for rendering HTML to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified HTML file as a PDF document
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("example.html");
// Save the rendered PDF to the specified file path
pdf.SaveAs("HtmlToPdf.pdf");
}
}
Imports IronPdf
Public Class Program
Shared Sub Main(ByVal args() As String)
' Create a new ChromePdfRenderer instance for rendering HTML to PDF
Dim renderer As New ChromePdfRenderer()
' Render the specified HTML file as a PDF document
Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("example.html")
' Save the rendered PDF to the specified file path
pdf.SaveAs("HtmlToPdf.pdf")
End Sub
End Class
入力HTML

出力PDF

このコード例では、まず新しい ChromePdfRenderer インスタンスを作成しました。これにより、 IronPDF がHTML を PDF にレンダリングするために使用する強力なレンダリング エンジンにアクセスできるようになります。 次に、HTML ファイルを RenderHtmlFileAsPdf() メソッドに渡します。このメソッドは HTML を PDF に変換し、 PdfDocument オブジェクトに保存します。 最後に、PDFを指定されたファイルの場所に保存します。
URLからPDFへ
URLコンテンツをPDFに変換したい開発者は、IronPDF以外を探す必要はありません。 このライブラリを使用すれば、URLからPDFをレンダリングする際に、元のスタイリングとレイアウトをすべて維持しながらChromePdfRendererレンダリングエンジンを使用してピクセルパーフェクトなPDFドキュメントを作成できます。 この例では、より複雑なCSSスタイリングを扱えるIronPDFを実証するためにこのURLを利用します。
using IronPdf;
public class Program
{
static void Main(string[] args)
{
// Create a new ChromePdfRenderer instance
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified URL as a PDF document
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
// Save the rendered PDF to the specified file path
pdf.SaveAs("UrlToPdf.pdf");
}
}
using IronPdf;
public class Program
{
static void Main(string[] args)
{
// Create a new ChromePdfRenderer instance
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified URL as a PDF document
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
// Save the rendered PDF to the specified file path
pdf.SaveAs("UrlToPdf.pdf");
}
}
Imports IronPdf
Public Class Program
Shared Sub Main(ByVal args() As String)
' Create a new ChromePdfRenderer instance
Dim renderer As New ChromePdfRenderer()
' Render the specified URL as a PDF document
Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://www.apple.com")
' Save the rendered PDF to the specified file path
pdf.SaveAs("UrlToPdf.pdf")
End Sub
End Class
PDF出力:

HTML から PDF への例と同様に、 IronPDFを使用して任意の URL を PDF に変換する最初の手順は、まず新しい ChromePdfRenderer インスタンスを作成することです。 メソッドは、RenderUrlAsPdf を使用して URL コンテンツを PDF 形式に変換した後、SaveAs メソッドを使用して PDF を保存する前に、結果の PDF を新しい PdfDocument オブジェクトに保存します。
PDF 署名
PDFドキュメントにデジタル署名を適用してその信頼性を確認します。 開発者が考慮するかもしれないデジタル署名を適用する方法には、セキュアな証明書でPDFにデジタル署名をすること、PDFに署名の手書き画像を追加すること、またはPDF自体に証明書の画像をスタンプすることがあります。
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
using IronSoftware.Drawing;
public class Program
{
static void Main(string[] args)
{
// Load the certificate used for signing the PDF
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);
// Create a PdfSignature instance and set the signature image
var sig = new PdfSignature(cert);
sig.SignatureImage = new PdfSignatureImage("IronPdf.png", 0, new Rectangle(150, 100, 350, 250));
// Sign the existing PDF file and save the signed version
sig.SignPdfFile("product_report.pdf");
}
}
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
using IronSoftware.Drawing;
public class Program
{
static void Main(string[] args)
{
// Load the certificate used for signing the PDF
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);
// Create a PdfSignature instance and set the signature image
var sig = new PdfSignature(cert);
sig.SignatureImage = new PdfSignatureImage("IronPdf.png", 0, new Rectangle(150, 100, 350, 250));
// Sign the existing PDF file and save the signed version
sig.SignPdfFile("product_report.pdf");
}
}
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
Imports IronSoftware.Drawing
Public Class Program
Shared Sub Main(ByVal args() As String)
' Load the certificate used for signing the PDF
Dim cert As New X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable)
' Create a PdfSignature instance and set the signature image
Dim sig = New PdfSignature(cert)
sig.SignatureImage = New PdfSignatureImage("IronPdf.png", 0, New Rectangle(150, 100, 350, 250))
' Sign the existing PDF file and save the signed version
sig.SignPdfFile("product_report.pdf")
End Sub
End Class
出力PDF

この例では、証明書オブジェクトを読み込み、署名の視覚的表現 (この場合はIronPDFイメージ) を作成し、PDF ドキュメント自体の署名を処理する新しい PdfSignature オブジェクトを作成しました。 最後に、SignPdfFile を使用して PDF ドキュメントに署名して保存しました。
IronPDF が提供する機能の詳細についてもっと知りたい場合は、説明が詳しい機能ページや、各機能の詳細なコード例を含む使い方ガイドをご覧ください。
iText7の主な機能(コード例付き)
iText7はPDFドキュメントのカスタマイズと強化のための幅広い機能を提供しています。 さまざまなPDF標準への対応や高度なPDF操作のための広範なフォーマットサポートを備えており、このPDFライブラリには多くの機能が詰まっています。 ただし、前述したように、iText7はHTMLからPDFへの変換を実行するために追加パッケージを必要とするかもしれません。
HTMLからPDFへの変換
iText7自体ではHTMLからPDFへの変換ができませんが、商用ライセンスの下の有料アドオンであるpdfHTMLを利用して、IronPDFの例で使用したHTMLファイルをPDFドキュメントに変換できます。
using iText.Html2pdf;
using System.IO;
public class Program
{
static void Main(string[] args)
{
// Open the HTML file stream
using (FileStream htmlSource = File.Open("example.html", FileMode.Open))
// Create the output PDF file stream
using (FileStream pdf = File.Open("HtmlToPdfOutput.pdf", FileMode.Create))
{
// Initialize ConverterProperties for HTML to PDF conversion
ConverterProperties converterProperties = new ConverterProperties();
// Convert the HTML source to a PDF document
HtmlConverter.ConvertToPdf(htmlSource, pdf, converterProperties);
// Close the PDF file
pdf.Close();
}
}
}
using iText.Html2pdf;
using System.IO;
public class Program
{
static void Main(string[] args)
{
// Open the HTML file stream
using (FileStream htmlSource = File.Open("example.html", FileMode.Open))
// Create the output PDF file stream
using (FileStream pdf = File.Open("HtmlToPdfOutput.pdf", FileMode.Create))
{
// Initialize ConverterProperties for HTML to PDF conversion
ConverterProperties converterProperties = new ConverterProperties();
// Convert the HTML source to a PDF document
HtmlConverter.ConvertToPdf(htmlSource, pdf, converterProperties);
// Close the PDF file
pdf.Close();
}
}
}
Imports iText.Html2pdf
Imports System.IO
Public Class Program
Shared Sub Main(ByVal args() As String)
' Open the HTML file stream
Using htmlSource As FileStream = File.Open("example.html", FileMode.Open)
' Create the output PDF file stream
Using pdf As FileStream = File.Open("HtmlToPdfOutput.pdf", FileMode.Create)
' Initialize ConverterProperties for HTML to PDF conversion
Dim converterProperties As New ConverterProperties()
' Convert the HTML source to a PDF document
HtmlConverter.ConvertToPdf(htmlSource, pdf, converterProperties)
' Close the PDF file
pdf.Close()
End Using
End Using
End Sub
End Class
出力PDF

この例では、HTMLファイルを読み込み、レンダリングされたPDFを保存するファイルの場所を指定しました。 次に、ConvertToPdf メソッドを使用して、HTML ファイルを PDF ドキュメントに簡単に変換できます。
URLからPDFへ
次に、iText7がURLをPDFに変換する際に、IronPDFとどのように比較できるかを見比べてみましょう。 これには、公平な比較を確保するために前述と同じURLを使用します。
using System;
using System.Net.Http;
using System.IO;
using iText.Html2pdf;
public class Program
{
public static async System.Threading.Tasks.Task Main(string[] args)
{
string url = "https://www.apple.com"; // Replace with your target URL
string outputPdfPath = "output.pdf";
try
{
// Download HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Convert HTML to PDF
using (FileStream pdfStream = new FileStream(outputPdfPath, FileMode.Create))
{
ConverterProperties properties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlContent, pdfStream, properties);
}
}
Console.WriteLine("PDF created successfully: " + outputPdfPath);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
using System;
using System.Net.Http;
using System.IO;
using iText.Html2pdf;
public class Program
{
public static async System.Threading.Tasks.Task Main(string[] args)
{
string url = "https://www.apple.com"; // Replace with your target URL
string outputPdfPath = "output.pdf";
try
{
// Download HTML content from the URL
using (HttpClient client = new HttpClient())
{
string htmlContent = await client.GetStringAsync(url);
// Convert HTML to PDF
using (FileStream pdfStream = new FileStream(outputPdfPath, FileMode.Create))
{
ConverterProperties properties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlContent, pdfStream, properties);
}
}
Console.WriteLine("PDF created successfully: " + outputPdfPath);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
Imports System
Imports System.Net.Http
Imports System.IO
Imports iText.Html2pdf
Public Class Program
Public Shared Async Function Main(ByVal args() As String) As System.Threading.Tasks.Task
Dim url As String = "https://www.apple.com" ' Replace with your target URL
Dim outputPdfPath As String = "output.pdf"
Try
' Download HTML content from the URL
Using client As New HttpClient()
Dim htmlContent As String = Await client.GetStringAsync(url)
' Convert HTML to PDF
Using pdfStream As New FileStream(outputPdfPath, FileMode.Create)
Dim properties As New ConverterProperties()
HtmlConverter.ConvertToPdf(htmlContent, pdfStream, properties)
End Using
End Using
Console.WriteLine("PDF created successfully: " & outputPdfPath)
Catch ex As Exception
Console.WriteLine("Error: " & ex.Message)
End Try
End Function
End Class
出力PDF

ここに見られるように、iText7のURLからPDFへの変換のアプローチは、より手動で複雑です。 最初にURLからHTMLコンテンツをダウンロードし、HTMLからPDFへの例で見たような手順に従ってURLコンテンツをPDFドキュメントにレンダリングして保存する必要があります。 出力画像に見られるように、iText7では、IronPDFとは異なり、元のスタイリングとレイアウトをあまり維持できませんでした。
PDF 署名
using System.Security.Cryptography.X509Certificates;
using iText.Kernel.Pdf;
using iText.Signatures;
using iText.Bouncycastle.Crypto;
using iText.Commons.Bouncycastle.Cert;
using iText.Commons.Bouncycastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.Crypto;
using iText.Bouncycastle.X509;
using iText.Kernel.Crypto;
using System.IO;
public class Program
{
static void Main(string[] args)
{
string inputPdf = "input.pdf"; // PDF to be signed
string outputPdf = "signed_output.pdf"; // Signed PDF output
string pfxFile = "IronSoftware.pfx"; // Path to your PFX certificate
string password = "Passw0rd"; // Password for PFX file
try
{
// Load your certificate
Pkcs12Store ks = new Pkcs12StoreBuilder().Build();
using (FileStream fs = new FileStream(pfxFile, FileMode.Open, FileAccess.Read))
{
ks.Load(fs, password.ToCharArray());
}
string alias = null;
foreach (string al in ks.Aliases)
{
if (ks.IsKeyEntry(al))
{
alias = al;
break;
}
}
if (alias == null)
{
throw new Exception("Alias not found in the PFX file.");
}
ICipherParameters pk = ks.GetKey(alias).Key;
X509CertificateEntry[] chain = ks.GetCertificateChain(alias);
// Convert BouncyCastle certificates to iText certificates
var itextCertChain = new IX509Certificate[chain.Length];
for (int i = 0; i < chain.Length; i++)
{
itextCertChain[i] = new X509CertificateBC(chain[i].Certificate);
}
// Create output PDF with signed content
using (PdfReader reader = new PdfReader(inputPdf))
using (FileStream os = new FileStream(outputPdf, FileMode.Create, FileAccess.Write))
{
PdfSigner signer = new PdfSigner(reader, os, new StampingProperties().UseAppendMode());
// Set up the external signature (private key + digest algorithm)
IPrivateKey iTextPrivateKey = new PrivateKeyBC(pk);
IExternalSignature pks = new PrivateKeySignature(iTextPrivateKey, DigestAlgorithms.SHA256);
IExternalDigest digest = new BouncyCastleDigest();
// Perform the signing (detached signature)
signer.SignDetached(digest, pks, itextCertChain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
}
Console.WriteLine($"PDF digitally signed successfully: {outputPdf}");
}
catch (Exception ex)
{
Console.WriteLine($"Error signing PDF: {ex.Message}");
}
}
}
using System.Security.Cryptography.X509Certificates;
using iText.Kernel.Pdf;
using iText.Signatures;
using iText.Bouncycastle.Crypto;
using iText.Commons.Bouncycastle.Cert;
using iText.Commons.Bouncycastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.Crypto;
using iText.Bouncycastle.X509;
using iText.Kernel.Crypto;
using System.IO;
public class Program
{
static void Main(string[] args)
{
string inputPdf = "input.pdf"; // PDF to be signed
string outputPdf = "signed_output.pdf"; // Signed PDF output
string pfxFile = "IronSoftware.pfx"; // Path to your PFX certificate
string password = "Passw0rd"; // Password for PFX file
try
{
// Load your certificate
Pkcs12Store ks = new Pkcs12StoreBuilder().Build();
using (FileStream fs = new FileStream(pfxFile, FileMode.Open, FileAccess.Read))
{
ks.Load(fs, password.ToCharArray());
}
string alias = null;
foreach (string al in ks.Aliases)
{
if (ks.IsKeyEntry(al))
{
alias = al;
break;
}
}
if (alias == null)
{
throw new Exception("Alias not found in the PFX file.");
}
ICipherParameters pk = ks.GetKey(alias).Key;
X509CertificateEntry[] chain = ks.GetCertificateChain(alias);
// Convert BouncyCastle certificates to iText certificates
var itextCertChain = new IX509Certificate[chain.Length];
for (int i = 0; i < chain.Length; i++)
{
itextCertChain[i] = new X509CertificateBC(chain[i].Certificate);
}
// Create output PDF with signed content
using (PdfReader reader = new PdfReader(inputPdf))
using (FileStream os = new FileStream(outputPdf, FileMode.Create, FileAccess.Write))
{
PdfSigner signer = new PdfSigner(reader, os, new StampingProperties().UseAppendMode());
// Set up the external signature (private key + digest algorithm)
IPrivateKey iTextPrivateKey = new PrivateKeyBC(pk);
IExternalSignature pks = new PrivateKeySignature(iTextPrivateKey, DigestAlgorithms.SHA256);
IExternalDigest digest = new BouncyCastleDigest();
// Perform the signing (detached signature)
signer.SignDetached(digest, pks, itextCertChain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
}
Console.WriteLine($"PDF digitally signed successfully: {outputPdf}");
}
catch (Exception ex)
{
Console.WriteLine($"Error signing PDF: {ex.Message}");
}
}
}
Imports System.Security.Cryptography.X509Certificates
Imports iText.Kernel.Pdf
Imports iText.Signatures
Imports iText.Bouncycastle.Crypto
Imports iText.Commons.Bouncycastle.Cert
Imports iText.Commons.Bouncycastle.Crypto
Imports Org.BouncyCastle.Pkcs
Imports Org.BouncyCastle.Crypto
Imports iText.Bouncycastle.X509
Imports iText.Kernel.Crypto
Imports System.IO
Public Class Program
Shared Sub Main(ByVal args() As String)
Dim inputPdf As String = "input.pdf" ' PDF to be signed
Dim outputPdf As String = "signed_output.pdf" ' Signed PDF output
Dim pfxFile As String = "IronSoftware.pfx" ' Path to your PFX certificate
Dim password As String = "Passw0rd" ' Password for PFX file
Try
' Load your certificate
Dim ks As Pkcs12Store = (New Pkcs12StoreBuilder()).Build()
Using fs As New FileStream(pfxFile, FileMode.Open, FileAccess.Read)
ks.Load(fs, password.ToCharArray())
End Using
Dim [alias] As String = Nothing
For Each al As String In ks.Aliases
If ks.IsKeyEntry(al) Then
[alias] = al
Exit For
End If
Next al
If [alias] Is Nothing Then
Throw New Exception("Alias not found in the PFX file.")
End If
Dim pk As ICipherParameters = ks.GetKey([alias]).Key
Dim chain() As X509CertificateEntry = ks.GetCertificateChain([alias])
' Convert BouncyCastle certificates to iText certificates
Dim itextCertChain = New IX509Certificate(chain.Length - 1){}
For i As Integer = 0 To chain.Length - 1
itextCertChain(i) = New X509CertificateBC(chain(i).Certificate)
Next i
' Create output PDF with signed content
Using reader As New PdfReader(inputPdf)
Using os As New FileStream(outputPdf, FileMode.Create, FileAccess.Write)
Dim signer As New PdfSigner(reader, os, (New StampingProperties()).UseAppendMode())
' Set up the external signature (private key + digest algorithm)
Dim iTextPrivateKey As IPrivateKey = New PrivateKeyBC(pk)
Dim pks As IExternalSignature = New PrivateKeySignature(iTextPrivateKey, DigestAlgorithms.SHA256)
Dim digest As IExternalDigest = New BouncyCastleDigest()
' Perform the signing (detached signature)
signer.SignDetached(digest, pks, itextCertChain, Nothing, Nothing, Nothing, 0, PdfSigner.CryptoStandard.CMS)
End Using
End Using
Console.WriteLine($"PDF digitally signed successfully: {outputPdf}")
Catch ex As Exception
Console.WriteLine($"Error signing PDF: {ex.Message}")
End Try
End Sub
End Class
出力PDF

見ての通り、iText7はPDFドキュメントにデジタル署名する能力がありますが、IronPDFに比べてプロセスがかなり複雑です。 このコードはPFX証明書をロードし、それを使用してPDFにデジタル署名します。 プライベートキーと証明書を抽出し、署名者を設定し、PDFに対してデタッチド署名を追加し、署名されたドキュメントを保存します。
競合分析
パフォーマンスと使いやすさ
IronPDFの主な利点
IronPDFは使いやすさと高パフォーマンスで最適化されていることから知られており、HTMLからPDFへの変換などの一般的なタスクを簡素化するAPIを提供しています。 高レベルのメソッドにより、複雑なPDF処理タスクを抽象化し、開発者はPDFを少ないコードで生成、編集、操作できます。 マルチスレッドまたは大規模なドキュメント処理のために、IronPDFは並列実行をサポートしています。
- 使いやすいAPI — 高レベルのメソッドがHTMLからPDFへの変換などの一般的なタスクを簡素化。
- 最小のセットアップが必要 — .NETプロジェクトに簡単に統合。
- ビルトインの並列実行 — 大量のPDF生成と変換の処理に最適化。
- 簡素化されたAPI — 結果を達成するためのコード行を削減。
iText 7 - 強力だが複雑
一方で、iText 7はより詳細で粒度の高いレベルの制御を提供しており、広範なカスタマイズが必要な開発者には利点があります。 低レベルのPDF操作に対して強力なAPIを提供します。 しかし、その複雑さから、iText 7ではIronPDFに比べて同様の結果を達成するためにしばしばより多くのコードが必要です。
- 粒度の高いPDF制御 — 厳格なコンプライアンスを必要とする企業アプリケーション(例:PDF/A、PDF/UA、デジタル署名)に理想的。
- 高度なカスタマイズ可能性 — 高度なユースケース向けの低レベルのPDF操作を提供。
- 急勾配な学習曲線 — IronPDFに比較して、より多くのセットアップと構成が必要。
- より多くのコードが必要になることが多い — 一般的なタスクはしばしばより長い実装を必要とします。
ライセンスとコスト
.NETプロジェクトのPDFライブラリを選択する際には、ライセンスとコストの考慮が重要です。 IronPDFとiText 7の両者は異なるライセンスモデルに従っており、適切な選択はプロジェクトの要件や予算、コンプライアンスの必要性に依存します。
IronPDFのライセンスとコスト
IronPDFは商用ライセンスモデルを採用しており、無料の試用版が商用ライセンスには提供されているものの、開発および評価目的には無料ですが、完全なプロダクションでの使用には有料ライセンスが必要です。 価格は使用規模、開発者数、プロジェクトタイプなどの要因に基づいて透明に決まります。
IronPDFのライセンス:
- 商用ライセンスモデル(オープンソースの制限なし)。
- 開発者またはチームライセンスに基づく明確な価格設定。
- HTMLからPDF、PDFセキュリティ、その他のコア機能に追加料金はありません。
- シンプルでコスト効果の高いPDFソリューションが必要な企業に最適。
結論: IronPDFはすべての主要機能を単一のライセンスに含んでおり、チームや企業にとってコスト効果の高い選択肢です。
iText7のライセンスとコスト
iText7は、デュアルライセンスモデルを採用しており、以下を含みます:
- AGPL(GNU Affero General Public License) ー オープンソースプロジェクトでは無料ですが、iText7を使用するプロジェクト全体がオープンソースでAGPL準拠であることを要する。 これは、プロジェクトに加えられた修正または追加が公に共有されなければならないことを意味します。
- 商用ライセンス ー ソースコードを開示したくないプロプライエタリソフトウェアまたは商用アプリケーションには必要です。 価格構造は使用、サポートレベル、展開規模に基づいて異なります。
企業がiText 7をプロプライエタリソフトウェアに統合したい場合、商用ライセンスが必須です。 コストは特にエンタープライズソリューションでは重要であり、開発者ごとにスケールされて価格が決められますが、プロフェッショナルサポートへのアクセスが提供され、法的コンプライアンスが保証されます。
なぜiText 7がより高価である可能性があるか:
- 開発者あたりの価格設定 — 各開発者は個別のライセンスが必要で、チーム全体のコストが増加。
*必須機能には高価なアドオンが必要です:- pdfHTML(有料) — HTMLからPDFへの変換に必要。
- pdfOCR(有料) — 画像からのテキスト認識に必要。
- pdfCalligraph(有料) — テキストレンダリングやフォントサポートを改善。
- pdfRender(有料) — PDFから画像への変換を追加。
- pdf2Data(有料) — PDFから構造化データを抽出。
- 複数の機能と開発者が必要な場合、企業コストは急速に加算される。
結論: チームが複数の開発者とHTMLからPDFへの変換やOCRといった主要な機能を必要とする場合、iText 7はこれらの機能を追加費用なしで提供するIronPDFに比べてかなり高額になる可能性があります。
使用ケースシナリオ
小規模対エンタープライズプロジェクト
迅速なPDF機能の実装を要求し、最小限の構成で済ませたい小中規模のプロジェクトにとって、IronPDFはその使いやすいAPIと包括的な機能セットにより魅力的な選択肢です。 特定のPDF標準への遵守と広範なカスタマイズを求めるエンタープライズレベルのプロジェクトは、iText7の高度な機能から利益を得るかもしれませんが、高性能、ライセンスオプション、使いやすさの面でIronPDFもこのレベルの仕事に強い候補です。
学術および商業利用
学術環境やオープンソースプロジェクトでは、iText 7のAGPLライセンスは互換性のあるプロジェクトでの無料使用を許可します。 商用アプリケーションの場合、IronPDFおよびiText 7の両方が商用ライセンスの購入を必要とします。 それぞれのライブラリのライセンス条件を確認することで、プロジェクトの目標に対する準拠性を確保することをお勧めします。
結論
.NETプロジェクトに最適なPDFライブラリを選択することは、使いやすさ、機能セット、ライセンスの必要性などの要因によって影響を受ける重要な決定です。 IronPDFとiText 7の両方は強力なPDF機能を提供しますが、それぞれ異なるニーズに対応しています。 これら2つのライブラリ以外にも、Aspose、Syncfusion、PDFSharpのような競争力のある.NET PDFライブラリを提供する競合他社が存在します。 しかし、IronPDFは、使いやすいAPI、包括的な機能セット、およびコスト効率でPDF業界をリードし続けています。
以下に、IronPDFがすべて .NET 向け PDFライブラリのニーズに対して優れた選択肢である理由を示す説得力のある議論を要約しました。

IronPDFの利点
- 使いやすさ: IronPDFは簡易性に重点を置いて設計されており、.NETアプリケーションにPDF機能を迅速に統合する必要がある開発者に最適な選択です。 その直感的なAPIは学習曲線を低減し、開発時間を短縮します。
- 包括的なドキュメントとサポート: IronPDFは詳細なドキュメントと活発なカスタマーサポートを提供し、開発者が迅速に状況を把握し、問題を効果的にトラブルシュートできるようにします。
- シームレスなHTMLからPDFへの変換: IronPDFはHTML、CSS、JavaScriptを含む高品質のPDFへの変換に秀でています。 これは、ウェブベースのコンテンツからPDFを動的に生成する必要があるプロジェクトに特に有益です。
- 商用ライセンス: 商用アプリケーションに対して、IronPDFはフレキシブルなライセンスオプションを提供し、オープンソースライセンスによる制約なしに準拠を確保します。
iTextの制約
- 複雑さ: iText 7は高度な機能とカスタマイズ性を提供しますが、PDF操作に不慣れな開発者にとって、そのAPIは複雑であり得ます。 これにより、IronPDFのより直接的なアプローチと比べて一般的なタスクの開発時間が長くなる可能性があります。
- 商用利用におけるライセンスコスト: iText 7のAGPLライセンスは、派生作品がオープンソースにされない限り、商用ライセンスの購入を要します。 これは、AGPLの条件に従えないプロプライエタリアプリケーションの制約となるかもしれません。
- Java志向の機能: iText 7は.NET向けに提供されているにもかかわらず、そのルーツがJavaエコシステムにあるため、とくにクロスプラットフォームの問題やJavaベースのツールとの統合において、C#開発者にとってはより馴染みないと感じる場合があります。
最終考察
プロジェクトが特にウェブコンテンツからの迅速なPDF生成を要し、使いやすいソリューションを求めているなら、IronPDFはおそらくより良い選択です。しかし、アプリケーションが高度なPDF操作やPDF標準への厳格な遵守を要求し、広範にカスタマイズする柔軟性を必要とする場合は、iText7がより適しているかもしれません。 プロジェクトの具体的な要件とライセンスの制約を考慮して、ニーズに最適なライブラリを判断してください。
IronPDFを試してみよう: 無料試用版をダウンロードし、IronPDFの強力な機能を自分で体験してみましょう!
このサイトはiText 7と提携、承認、または後援されていません。すべての製品名、ロゴ、およびブランドはそれぞれの所有者の財産です。} このサイトは iText 7 と提携、承認、またはスポンサーされていません。すべての製品名、ロゴ、およびブランドは、それぞれの所有者に属しています。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。)}]
よくある質問
C# で HTML を PDF に変換するにはどうすればいいですか?
IronPDF の RenderHtmlAsPdf メソッドを使用して、HTML 文字列を PDF に変換できます。RenderHtmlFileAsPdf を使用して HTML ファイルを PDF に変換することもできます。
IronPDFとiText 7の主な違いは何ですか?
IronPDFはスムーズなHTMLからPDFへの変換と簡潔な商業ライセンスモデルを提供していますが、iText 7はHTMLからPDFへの変換に有料のアドオンが必要で、デュアルライセンスモデルに従います。IronPDFは使いやすさで知られていますが、iText 7は高度なPDF操作を提供しますが、学習曲線が急です。
なぜ.NETプロジェクトにIronPDFを選ぶべきですか?
IronPDFは迅速でコスト効率の高いPDF実装に理想的で、使いやすさ、包括的なドキュメント、および追加費用なしでのHTMLからPDFへの変換を提供します。複数 for .NETバージョンをサポートし、PDF編集やセキュリティなどの広範な機能を提供します。
IronPDFは複雑なPDF文書を生成するのに適していますか?
はい、IronPDFはフォーム入力、注釈、データ抽出などの機能を備え、複雑なPDF文書の生成をサポートします。その広範な機能により、さまざまなプロフェッショナルなPDFアプリケーションに適しています。
IronPDFのライセンスオプションはどのようになっていますか?
IronPDFは商業ライセンスモデルを採用しており、それを使用するには有料ライセンスが必要です。このシンプルなモデルは、iText 7のようなデュアルライセンスシステムに関連する複雑さを排除します。
.NET CoreプロジェクトにIronPDFを統合できますか?
はい、IronPDFは.NET Coreプロジェクトに統合できます。.NET Core、.NET Framework、.NET Standardをサポートし、さまざまな開発環境に対して柔軟性があります。
IronPDFはPDFセキュリティ機能をどのように処理しますか?
IronPDFは暗号化、パスワード保護、デジタル署名を含む強力なPDFセキュリティ機能を提供し、機密文書情報の保護に役立ちます。
他のライブラリと比較してIronPDFはなぜユーザーフレンドリーですか?
IronPDFは、その簡潔なAPI、最小限のセットアップ要件、および包括的なドキュメントにより、PDF生成の経験が限られている開発者でも簡単に実装できるため、ユーザーフレンドリーと見なされています。
IronPDFでのHTMLからPDFへの変換には追加コストはありますか?
いいえ、IronPDFには組み込みのHTMLからPDFへの変換機能があり、他のPDFライブラリの一部が有料アドオンを必要とするのに対し、追加のコンポーネントやコストが不要です。
性能と速度の観点からIronPDFはどのように比較されますか?
IronPDFは性能と速度に最適化されており、迅速かつ信頼性の高いPDF生成と操作を提供し、大量のPDF処理を行うアプリケーションにとって重要です。



