PDFの編集のためのiTextSharpとIronPDFの比較
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.
現代 for .NETアプリケーションでは、PDFファイルの作成と管理は一般的な要件です。たとえばレポート、請求書、またはデジタル記録を生成する場合などです。 開発者はしばしばこのタスクのためにサードパーティのPDFライブラリに目を向け、.NETエコシステムで最も人気のある選択肢の2つは、IronPDFとiText(iTextの後継)です。
それぞれのライブラリは、さまざまな使用例に強力なツールセットを提供します。 しかし、C#で[バイト配列](https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2013/dd831853(v=vs.120)からPDFを生成するのに最適なのはどれでしょうか? この記事では、比較、コード例、.NET開発者が正しい選択をするための洞察を提供します。
企業向けアプリケーションや小規模な内部ツールを構築する際に適切なPDFライブラリの選択は、開発時間の節約や堅牢な出力の保証に役立ちます。 各ライブラリが提供するものを探りましょう。
PDFライブラリの紹介
PDFライブラリは何のために使用されるのですか?
C#のPDFライブラリを使用すると、開発者はPDFファイルをプログラム的に生成、操作、読み取ることができます。 さまざまな使用例を持ちます、例えば:
- レポートや請求書のエクスポート
- ウェブフォームから動的コンテンツを生成
- HTMLページやテンプレートをPDFに変換
- ページ番号、チャート、画像などの視覚要素をPDFファイルに追加
- 文書の結合や分割
- PDFのデジタル署名
また、データの携帯性やPDF/Aなどの標準のアーカイブまたはアクセシビリティ要件に準拠する上で重要な役割を果たします。
iTextとIronPDF: トップの競合相手
入手可能な.NET PDFライブラリの中で、iTextとIronPDFはリードするソリューションとして浮上しており、それぞれが異なる強みを持っています:
- iText はJavaのiTextに基づく成熟したオープンソースライブラリで、堅牢なPDF制御を提供していますが、学習曲線が険しく、ライセンス上の注意事項があります。
- IronPDFは、モダンな商用ライブラリで、シンプルさ、スピード、およびウェブ統合に焦点を当てており、HTMLやASP.NETビューを直接PDFファイルに変換できます。
適切なライブラリ選択が重要な理由
2つのライブラリの選択は単なる好みの問題ではありません。それは生産性、保守性、パフォーマンス、さらには法的なライセンス遵守にまで影響を与えます。 迅速な展開、頻繁なフォーマット変更、またはHTMLテンプレートからのPDFレンダリングを求めるプロジェクトは、迅速な開発の恩恵を受け、企業レベルのアプリケーションは標準の遵守と長期の維持可能性を優先するかもしれません。
機能の比較
iText for .NET (iTextの後継)
iTextはiTextの公式な後継であり、完全に再設計されたアーキテクチャを提供します。 これは、法的、金融、政府のようなコンプライアンス重視の業界でPDFを作成、編集、および検証するための強力で拡張可能なライブラリです。 iTextスイートには、PDF/A、PDF/UA、デジタル署名、マスキング、フォーム作成のサポートがあります。
まだAGPLライセンスのオープンソースですが、商用プロジェクトには商用ライセンスが利用可能です。
iTextの主な機能
- 新しいAPI、iTextの古い構造を置き換える
- モジュラーサポート: HTML to PDF、PDF/A、フォーム、墨消し、デジタル署名
- 企業向けアプリケーションのための高性能
- PDF/A、アクセシビリティ、コンプライアンスに最適
インストール (NuGet)
iTextのコアパッケージをPDF生成用にダウンロードするには:
Install-Package itext7

ソリューション画面のパッケージマネージャーを介してもiTextをインストールできます。 これを行うには、まずツールドロップダウンメニューを開き、"NuGet パッケージ マネージャ > ソリューションの NuGet パッケージを管理"を見つけます。

その後、ただiTextを検索して、"インストール"をクリックするだけです。

コード例: iTextを使用してバイト配列からPDFドキュメントを作成する
using System.IO;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.GeneratePdfWithIText7();
// Save the PDF to a file
File.WriteAllBytes("output.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] GeneratePdfWithIText7()
{
using (var ms = new MemoryStream())
{
var writer = new PdfWriter(ms);
var pdf = new iText.Kernel.Pdf.PdfDocument(writer);
var doc = new Document(pdf);
doc.Add(new Paragraph("Hello from iText 7 for .NET!"));
doc.Close(); // Always close the document to finalize content
return ms.ToArray();
}
}
}
using System.IO;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.GeneratePdfWithIText7();
// Save the PDF to a file
File.WriteAllBytes("output.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] GeneratePdfWithIText7()
{
using (var ms = new MemoryStream())
{
var writer = new PdfWriter(ms);
var pdf = new iText.Kernel.Pdf.PdfDocument(writer);
var doc = new Document(pdf);
doc.Add(new Paragraph("Hello from iText 7 for .NET!"));
doc.Close(); // Always close the document to finalize content
return ms.ToArray();
}
}
}
Imports System.IO
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim pdfGenerator As New PdfGenerator()
Dim pdfBytes() As Byte = pdfGenerator.GeneratePdfWithIText7()
' Save the PDF to a file
File.WriteAllBytes("output.pdf", pdfBytes)
End Sub
End Class
Friend Class PdfGenerator
Public Function GeneratePdfWithIText7() As Byte()
Using ms = New MemoryStream()
Dim writer = New PdfWriter(ms)
Dim pdf = New iText.Kernel.Pdf.PdfDocument(writer)
Dim doc = New Document(pdf)
doc.Add(New Paragraph("Hello from iText 7 for .NET!"))
doc.Close() ' Always close the document to finalize content
Return ms.ToArray()
End Using
End Function
End Class
PDFファイルの出力

説明
MemoryStreamに書き込みます。PdfDocumentはPDFの内部構造を管理します。Documentは高レベルの内容(テキスト、画像、テーブル)を追加するために使用されます。doc.Close()を呼び出した後、PDFの内容は完全に書き込まれ、バイト配列として返される準備が完了します。
この例は、iTextの<にモジュラーで読みやすいAPI しかし、pdfhtmlを含めない限り、HTML/CSSのレンダリングをネイティブでサポートしていません。これは別のライセンスが必要です。
iTextの利点と欠点
利点:
-
包括的なPDF制御\ iTextは、テーブル、フォーム、デジタル署名などのPDF要素を完全に制御します。 これにより、PDF/AやPDF/UAなどの特定のPDF標準を必要とするコンプライアンス重視のアプリケーションに最適です。
-
モジュラーかつスケーラブル\ iTextはモジュール式であり、必要な特定のモジュールのみをインストールできます(例:HTMLからPDFへの変換用のpdfhtml)。 これにより、すべての機能を使用しない場合は、軽量な実装が可能になります。
-
複雑なPDF規格をサポート\ iTextはPDF/A(アーカイブ)、PDF/UA(アクセシビリティ)、PDF/X(印刷)などのISO標準をサポートし、プロフェッショナルおよび法的環境でのコンプライアンスが重要です。
-
豊富なドキュメントとサポート\ iTextは包括的なドキュメンテーションと大きなコミュニティを持っています。 また、会社はプロフェッショナルサポートを提供しており、開発者が必要なときに支援を受けられます。
- 無料版利用可能(AGPL)\ 開発者はAGPLライセンスの下でiTextを無料で使用でき、オープンソースプロジェクトや個人利用に最適です。
欠点:
-
商用利用のためのAGPLライセンス\ iTextは無料版を提供していますが、商用ユーザーはAGPLライセンスに従う必要があり、iTextを使用するソフトウェアのソースコードを公開するか、商用ライセンスを購入する必要があります。
-
急な学習曲線\ iTextのAPIはより複雑で機能豊富であり、よりシンプルなライブラリ(IronPDFなど)と比較して学習曲線が急です。 開発者は、その低レベルの文書構造とモジュール基盤のアーキテクチャを習得する必要があります。
-
単純なタスクには過剰\ iTextは基本的なPDFタスク、例えば単純な文書作成や基本的なHTMLからのPDF変換に対して煩雑に感じるかもしれません、特にプロセスを簡素化するライブラリ(例:IronPDF)と比較して
- HTMLからPDFへの変換には外部モジュールが必要\ iTextのHTMLからPDFへの変換は追加のpdfhtmlモジュールを通じてのみ利用可能で、別途のインストールが必要であり、モダンなWebコンテンツをIronPDFのようにシームレスに処理できない場合があります。
IronPDF .NET 向け: 強力なPDFライブラリ
IronPDFは、開発者の生産性に焦点を当てたPDF文書生成を簡素化するために設計された高レベル for .NETライブラリです。 特にHTMLコンテンツとスタイリングのレンダリングに効果的で、現代のWebからPDFへのワークフローに最適です。
主な特徴:
- バイト配列からPDFファイルを作成し、Adobe ReaderをインストールせずにPDF文書を操作
- 完全なChromiumエンジンを使用した直接的なHTMLからPDFへのレンダリングでHTMLコンテンツからPDF文書を作成
- MVCビュー、Razorページ、ローカルおよびリモートURLで動作
- 画像ファイル、JavaScript、CSS、およびレスポンシブレイアウトをアウトオブザボックスでサポート
- 簡単に使用できる構文と最小限のセットアップ
- 永続的なライセンスとAGPL制約なし
IronPDFのインストール
IronPDFもまた、NuGetを介してインストール可能で、NuGet パッケージ マネージャーコンソールで次のコマンドを実行してインストールします:
Install-Package IronPdf

または、NuGetパッケージマネージャでソリューション画面からインストールすることができます。 これを行うには、"ツール > NuGetパッケージマネージャ > ソリューションのNuGetパッケージを管理"へ移動します。

その後、"IronPDF"を検索し、"インストール"をクリックします。

インストール後、フルHTMLページのPDFへのレンダリングを数秒で開始できます—追加のモジュールは必要ありません。 モダンなCSS、JavaScript、インタラクティブなウェブコンテンツを追加設定なしでサポートします。
コード例:バイト配列でIronPDFを使用してPDFドキュメントを作成
using IronPdf;
using System.IO;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.GeneratePdfWithIronPdf();
// Save the PDF to a file
File.WriteAllBytes("output.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] GeneratePdfWithIronPdf()
{
var renderer = new ChromePdfRenderer();
var pdfDoc = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
return pdfDoc.BinaryData;
}
}
using IronPdf;
using System.IO;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.GeneratePdfWithIronPdf();
// Save the PDF to a file
File.WriteAllBytes("output.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] GeneratePdfWithIronPdf()
{
var renderer = new ChromePdfRenderer();
var pdfDoc = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
return pdfDoc.BinaryData;
}
}
Imports IronPdf
Imports System.IO
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim pdfGenerator As New PdfGenerator()
Dim pdfBytes() As Byte = pdfGenerator.GeneratePdfWithIronPdf()
' Save the PDF to a file
File.WriteAllBytes("output.pdf", pdfBytes)
End Sub
End Class
Friend Class PdfGenerator
Public Function GeneratePdfWithIronPdf() As Byte()
Dim renderer = New ChromePdfRenderer()
Dim pdfDoc = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1>")
Return pdfDoc.BinaryData
End Function
End Class
PDFファイルの出力

説明
using IronPdfステートメントはIronPDFをインポートして、すべてのPDF関連クラスにアクセスします。var renderer = new ChromePdfRenderer()はヘッドレスChromeエンジンを搭載した新しいHTML to PDFレンダラーを作成します。renderer.RenderHtmlAsPdf(...)は指定されたHTML文字列をPDF文書に変換します。 また、ファイルパスやURLを渡すこともできます。pdfDoc.BinaryDataは、最終的なPDFをバイト配列として返し、保存、ストリーミング、データベース保存が準備されます。
IronPDFの利点と欠点
利点:
-
簡単なHTMLからPDFへのレンダリング\ 完全なスタイリングでHTML、CSS、JavaScriptコンテンツをまっすぐにPDFにレンダリング、複雑なレイアウトコードや追加モジュールは不要です。
-
クイックスタートと直感的なAPI\ クリーンな構文と完全な.NET Coreおよび.NET Frameworkの互換性を持ち、わずか数行のコードでフルスタイルのPDFファイルを作成します。
-
ウェブテクノロジーの包括的なサポート\ IronPDFは、JavaScript、モダンCSS、SVG、メディアクエリをサポートしており、Chromiumのようなヘッドレスブラウザを内部で使用しなければ多くのライブラリが苦しむ領域をカバーしています。
-
ビルトインの画像とアセット処理\ 追加設定なしで、画像、ローカルファイル、さらにはリモートURLからアセットを簡単に含むことができます。
-
永続ライセンスとAGPLなし\ iTextと異なり、IronPDFはオープンソースAGPLの義務なしに柔軟な商用ライセンスを提供します。
- MVCとRazorビューのために優秀\ ASP.NETアプリケーションで.cshmtl Razor Viewsをシームレスに印刷可能なPDFに変換します。
欠点:
商用利用にはライセンスが必要\ 無料トライアルがありますが、IronPDFはオープンソースではありません。 予算の厳しいプロジェクトはライセンスコストを評価する必要があります。
- 初期パッケージサイズが大きい\ ヘッドレスChromiumエンジンをバンドルしているため、NuGetパッケージは一部の代替品よりも重いです。
実用的なコード例の比較
このセクションの以下のコード例は、これらのライブラリが実際にどのように動作するかを示し、同じタスクを使用してIronPDFとiTextを比較します。 両方のライブラリは、URLからPDFの生成、画像をPDFとしてレンダリング、スタイル付きHTMLをPDFに変換するという同じシナリオで評価されますが、その過程でPDFコンテンツの扱いにはバイト配列が使用されます。 これは開発者が各ライブラリがこれら共通の使用例にどのようにアプローチするかを評価することを可能にします。
1. バイト配列を使用してURLからシンプルなPDFを生成
IronPDF
using IronPdf;
using System.IO;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.GeneratePdfFromUrlWithIronPdf();
// Save the PDF to a file
File.WriteAllBytes("ironpdf-from-url.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] GeneratePdfFromUrlWithIronPdf()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitForJavaScript(5000);
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
var pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
return pdf.BinaryData;
}
}
using IronPdf;
using System.IO;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.GeneratePdfFromUrlWithIronPdf();
// Save the PDF to a file
File.WriteAllBytes("ironpdf-from-url.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] GeneratePdfFromUrlWithIronPdf()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitForJavaScript(5000);
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
var pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
return pdf.BinaryData;
}
}
Imports IronPdf
Imports System.IO
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim pdfGenerator As New PdfGenerator()
Dim pdfBytes() As Byte = pdfGenerator.GeneratePdfFromUrlWithIronPdf()
' Save the PDF to a file
File.WriteAllBytes("ironpdf-from-url.pdf", pdfBytes)
End Sub
End Class
Friend Class PdfGenerator
Public Function GeneratePdfFromUrlWithIronPdf() As Byte()
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitForJavaScript(5000)
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Dim pdf = renderer.RenderUrlAsPdf("https://www.apple.com")
Return pdf.BinaryData
End Function
End Class
出力PDF

IronPDFは、完全なJavaScriptとCSSのサポートを備えたウェブページのためのピクセルパーフェクトレンダリングをヘッドレスChromiumエンジンを使用して提供します。
iText
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using System.Net.Http;
using System.Threading.Tasks;
using iText.Html2pdf;
using System.IO;
class Program
{
static async Task Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = await pdfGenerator.GeneratePdfFromUrlWithIText7Async();
// Save the PDF to a file
File.WriteAllBytes("itext7-from-url.pdf", pdfBytes);
}
}
class PdfGenerator
{
public async Task<byte[]> GeneratePdfFromUrlWithIText7Async()
{
using var httpClient = new HttpClient();
string html = await httpClient.GetStringAsync("https://www.apple.com");
using var stream = new MemoryStream();
HtmlConverter.ConvertToPdf(html, stream);
return stream.ToArray();
}
}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using System.Net.Http;
using System.Threading.Tasks;
using iText.Html2pdf;
using System.IO;
class Program
{
static async Task Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = await pdfGenerator.GeneratePdfFromUrlWithIText7Async();
// Save the PDF to a file
File.WriteAllBytes("itext7-from-url.pdf", pdfBytes);
}
}
class PdfGenerator
{
public async Task<byte[]> GeneratePdfFromUrlWithIText7Async()
{
using var httpClient = new HttpClient();
string html = await httpClient.GetStringAsync("https://www.apple.com");
using var stream = new MemoryStream();
HtmlConverter.ConvertToPdf(html, stream);
return stream.ToArray();
}
}
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Imports System.Net.Http
Imports System.Threading.Tasks
Imports iText.Html2pdf
Imports System.IO
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
Dim pdfGenerator As New PdfGenerator()
Dim pdfBytes() As Byte = Await pdfGenerator.GeneratePdfFromUrlWithIText7Async()
' Save the PDF to a file
File.WriteAllBytes("itext7-from-url.pdf", pdfBytes)
End Function
End Class
Friend Class PdfGenerator
Public Async Function GeneratePdfFromUrlWithIText7Async() As Task(Of Byte())
Dim httpClient As New HttpClient()
Dim html As String = Await httpClient.GetStringAsync("https://www.apple.com")
Dim stream = New MemoryStream()
HtmlConverter.ConvertToPdf(html, stream)
Return stream.ToArray()
End Function
End Class
出力

iText は HttpClient を使用して生の HTML を取得し、HtmlConverter でレンダリングしますが、JavaScriptの実行をサポートしていません(iTextの公式ドキュメントで確認されているように、JavaScriptプリプロセッシングにはSeleniumや類似の自動化ツールの使用を推奨しています)し、限られたCSSスタイリングがあります。 iTextはバージョン7.1.15(2021年)で部分的なflexboxサポートを追加しましたが、特に複雑なモダンレイアウトに対して多くのCSS3プロパティは未だサポートされていません。
2. バイト配列を使用して画像から新しいPDFファイルを作成
IronPDF
using IronPdf;
using System.IO;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.CreatePdfWithImage();
// Save the PDF to a file
File.WriteAllBytes("ironpdf-with-image.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] CreatePdfWithImage()
{
var pdf = ImageToPdfConverter.ImageToPdf("example.png");
return pdf.BinaryData;
}
}
using IronPdf;
using System.IO;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.CreatePdfWithImage();
// Save the PDF to a file
File.WriteAllBytes("ironpdf-with-image.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] CreatePdfWithImage()
{
var pdf = ImageToPdfConverter.ImageToPdf("example.png");
return pdf.BinaryData;
}
}
Imports IronPdf
Imports System.IO
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim pdfGenerator As New PdfGenerator()
Dim pdfBytes() As Byte = pdfGenerator.CreatePdfWithImage()
' Save the PDF to a file
File.WriteAllBytes("ironpdf-with-image.pdf", pdfBytes)
End Sub
End Class
Friend Class PdfGenerator
Public Function CreatePdfWithImage() As Byte()
Dim pdf = ImageToPdfConverter.ImageToPdf("example.png")
Return pdf.BinaryData
End Function
End Class
出力

IronPDFのImageToPdfConverterツールを使用した、簡単な画像からPDFの生成。 これにより、PNGファイルやJPGなどの画像から簡単にPDFファイルを作成できます。
iText
using iText.Kernel.Pdf;
using iText.Layout;
using iText.IO.Image;
using iText.Layout.Element;
using System.IO;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.CreatePdfWithImage();
// Save the PDF to a file
File.WriteAllBytes("iText-with-image.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] CreatePdfWithImage()
{
using var ms = new MemoryStream();
using var writer = new PdfWriter(ms);
using var pdfDoc = new iText.Kernel.Pdf.PdfDocument(writer);
var document = new Document(pdfDoc);
var img = new Image(ImageDataFactory.Create("https://itextpdf.com/sites/default/files/2018-11/iText%207%20Product%20software%20-%20webimages_509x339px_V2_iText%207%20Core.png"));
document.Add(img);
document.Close();
return ms.ToArray();
}
}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.IO.Image;
using iText.Layout.Element;
using System.IO;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.CreatePdfWithImage();
// Save the PDF to a file
File.WriteAllBytes("iText-with-image.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] CreatePdfWithImage()
{
using var ms = new MemoryStream();
using var writer = new PdfWriter(ms);
using var pdfDoc = new iText.Kernel.Pdf.PdfDocument(writer);
var document = new Document(pdfDoc);
var img = new Image(ImageDataFactory.Create("https://itextpdf.com/sites/default/files/2018-11/iText%207%20Product%20software%20-%20webimages_509x339px_V2_iText%207%20Core.png"));
document.Add(img);
document.Close();
return ms.ToArray();
}
}
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.IO.Image
Imports iText.Layout.Element
Imports System.IO
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim pdfGenerator As New PdfGenerator()
Dim pdfBytes() As Byte = pdfGenerator.CreatePdfWithImage()
' Save the PDF to a file
File.WriteAllBytes("iText-with-image.pdf", pdfBytes)
End Sub
End Class
Friend Class PdfGenerator
Public Function CreatePdfWithImage() As Byte()
Dim ms = New MemoryStream()
Dim writer = New PdfWriter(ms)
Dim pdfDoc = New iText.Kernel.Pdf.PdfDocument(writer)
Dim document As New Document(pdfDoc)
Dim img = New Image(ImageDataFactory.Create("https://itextpdf.com/sites/default/files/2018-11/iText%207%20Product%20software%20-%20webimages_509x339px_V2_iText%207%20Core.png"))
document.Add(img)
document.Close()
Return ms.ToArray()
End Function
End Class
出力

ImageDataFactoryを使用した文書レイアウトの手動作成と明示的な画像挿入。
3. スタイル付きHTMLコンテンツをバイト配列でPDFに変換
IronPDF
using IronPdf;
using System.IO;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.CreateStyledPdf();
// Save the PDF to a file
File.WriteAllBytes("ironpdf-styled-html.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] CreateStyledPdf()
{
string html = @"
<html>
<head>
<style>
body {
background-color: #f0f0f0;
margin: 20px;
padding: 20px;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
h1 {
color: navy;
font-size: 32px;
text-align: center;
}
p {
font-size: 16px;
font-weight: bold;
}
</style>
</head>
<body>
<h1>Welcome to IronPDF</h1>
<p>This is a simple PDF document generated using IronPDF.</p>
</body>
</html>";
var pdf = new ChromePdfRenderer().RenderHtmlAsPdf(html);
return pdf.BinaryData;
}
}
using IronPdf;
using System.IO;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.CreateStyledPdf();
// Save the PDF to a file
File.WriteAllBytes("ironpdf-styled-html.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] CreateStyledPdf()
{
string html = @"
<html>
<head>
<style>
body {
background-color: #f0f0f0;
margin: 20px;
padding: 20px;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
h1 {
color: navy;
font-size: 32px;
text-align: center;
}
p {
font-size: 16px;
font-weight: bold;
}
</style>
</head>
<body>
<h1>Welcome to IronPDF</h1>
<p>This is a simple PDF document generated using IronPDF.</p>
</body>
</html>";
var pdf = new ChromePdfRenderer().RenderHtmlAsPdf(html);
return pdf.BinaryData;
}
}
Imports IronPdf
Imports System.IO
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim pdfGenerator As New PdfGenerator()
Dim pdfBytes() As Byte = pdfGenerator.CreateStyledPdf()
' Save the PDF to a file
File.WriteAllBytes("ironpdf-styled-html.pdf", pdfBytes)
End Sub
End Class
Friend Class PdfGenerator
Public Function CreateStyledPdf() As Byte()
Dim html As String = "
<html>
<head>
<style>
body {
background-color: #f0f0f0;
margin: 20px;
padding: 20px;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
h1 {
color: navy;
font-size: 32px;
text-align: center;
}
p {
font-size: 16px;
font-weight: bold;
}
</style>
</head>
<body>
<h1>Welcome to IronPDF</h1>
<p>This is a simple PDF document generated using IronPDF.</p>
</body>
</html>"
Dim pdf = (New ChromePdfRenderer()).RenderHtmlAsPdf(html)
Return pdf.BinaryData
End Function
End Class
出力

IronPDFはそのChromiumエンジンのおかげで、タグや外部スタイルシート内のCSSを完全にサポートしています。
iText + pdfHTML
using iText.Kernel.Pdf;
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.CreateStyledPdf();
// Save the new document to the specified file location
File.WriteAllBytes("iText-styled-html.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] CreateStyledPdf()
{
string html = @"
<html>
<head>
<style>
body {
background-color: #f0f0f0;
margin: 20px;
padding: 20px;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
h1 {
color: navy;
font-size: 32px;
text-align: center;
}
p {
font-size: 16px;
font-weight: bold;
}
</style>
</head>
<body>
<h1>Welcome to iText 7</h1>
<p>This is a simple PDF document generated using iText 7 and pdfHTML.</p>
</body>
</html>";
using var ms = new MemoryStream();
ConverterProperties properties = new ConverterProperties();
HtmlConverter.ConvertToPdf(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)), ms, properties);
return ms.ToArray();
}
}
using iText.Kernel.Pdf;
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main(string[] args)
{
var pdfGenerator = new PdfGenerator();
byte[] pdfBytes = pdfGenerator.CreateStyledPdf();
// Save the new document to the specified file location
File.WriteAllBytes("iText-styled-html.pdf", pdfBytes);
}
}
class PdfGenerator
{
public byte[] CreateStyledPdf()
{
string html = @"
<html>
<head>
<style>
body {
background-color: #f0f0f0;
margin: 20px;
padding: 20px;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
h1 {
color: navy;
font-size: 32px;
text-align: center;
}
p {
font-size: 16px;
font-weight: bold;
}
</style>
</head>
<body>
<h1>Welcome to iText 7</h1>
<p>This is a simple PDF document generated using iText 7 and pdfHTML.</p>
</body>
</html>";
using var ms = new MemoryStream();
ConverterProperties properties = new ConverterProperties();
HtmlConverter.ConvertToPdf(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)), ms, properties);
return ms.ToArray();
}
}
Imports iText.Kernel.Pdf
Imports iText.Html2pdf
Imports System.IO
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim pdfGenerator As New PdfGenerator()
Dim pdfBytes() As Byte = pdfGenerator.CreateStyledPdf()
' Save the new document to the specified file location
File.WriteAllBytes("iText-styled-html.pdf", pdfBytes)
End Sub
End Class
Friend Class PdfGenerator
Public Function CreateStyledPdf() As Byte()
Dim html As String = "
<html>
<head>
<style>
body {
background-color: #f0f0f0;
margin: 20px;
padding: 20px;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
h1 {
color: navy;
font-size: 32px;
text-align: center;
}
p {
font-size: 16px;
font-weight: bold;
}
</style>
</head>
<body>
<h1>Welcome to iText 7</h1>
<p>This is a simple PDF document generated using iText 7 and pdfHTML.</p>
</body>
</html>"
Dim ms = New MemoryStream()
Dim properties As New ConverterProperties()
HtmlConverter.ConvertToPdf(New MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)), ms, properties)
Return ms.ToArray()
End Function
End Class
出力

HTML変換タスクを処理するためには有料のアドオンであるpdfHTMLのインストールが必要です。
比較概要
| 機能 | IronPDF | iText (pdfHTML付き) |
|---|---|---|
| URLをPDFにレンダリング | 完全なChromiumレンダリング | HTMLをフェッチし、ネイティブJSのサポートなし |
| 画像を追加 | HTML経由で埋め込むか専用の画像スタンプツールで | 手動イメージファクトリー |
| スタイル付きHTMLをレンダリング | 完全なCSSサポート | CSSサポートはpdfHTMLを通してのみ |
| バイト配列として返却 | はい | はい |
| セットアップの複雑さ | 簡単 | 中程度(手動レイアウト) |
| 出力品質 | ピクセルパーフェクト | 良いが静的 |
結論:ど for .NETライブラリを選択すべきか?
IronPDFとiTextのどちらを選ぶかはプロジェクトのニーズによりますが、開発者体験、使いやすさ、モダンなレンダリング精度の点でIronPDFは明確に際立っています。
動的なHTMLコンテンツ、ウェブレンダリング、またはURLからのPDFファイル作成が必要で、JavaScriptとCSSのサポートが完全である場合、IronPDFのChromiumベースのエンジンは無比の忠実度を提供します。 その直感的なAPIと迅速なセットアップにより、特にバイト配列、ファイルストリーム、あるいはウェブベースのPDF生成での実際の生産環境を前提とした迅速な開発と実際のプロダクション使用に最適です。
一方で、iTextはより伝統的でレイアウト駆動のアプローチを持つ強力で尊敬されるライブラリです。 文書構造に対する確固たる制御を提供し、細かな操作が必要な開発者にとって素晴らしいですが、学習曲線が急で、現代のHTMLレンダリング機能に欠けています。
-
モダンなウェブコンテンツ、スタイル付きHTML、または迅速なプロトタイピングからのピクセルパーフェクト出力が必要ですか?
- 現代のウェブコンテンツ、スタイル付きHTML、または迅速なプロトタイピングからピクセルパーフェクトな出力を求めていますか? IronPDFを利用しましょう。
- 詳細な制御が可能な低レベルのPDF作成ツールが必要ですか? iTextが適している場合があります。
IronPDFを使い始める準備はできましたか?
無料トライアルをダウンロードして、C#で数行のコードを使ってプロフェッショナルなバイト配列ベースのPDFを作成するのがどれほど簡単かを見てください。
[{i: (iTextはその所有者の登録商標です。 このサイトは、iTextと提携しておらず、承認されてもおらず、後援されてもいません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。)}]
よくある質問
C#でバイト配列をPDFに変換するにはどうすればよいですか?
IronPDFを使用して、C#でバイト配列をPDFに変換できます。`PdfDocument.FromBytes`メソッドを使用してバイト配列をIronPDFドキュメントに読み込むだけで、データを解析してPDFドキュメントを生成します。
HTMLからPDFへの変換にIronPDFを使用する利点は何ですか?
IronPDFは最新のCSSとJavaScriptをサポートするヘッドレスChromiumエンジンを使用しているため、HTMLからPDFに変換する際に優れています。これにより、動的なウェブコンテンツをピクセルパーフェクトなPDFドキュメントにレンダリングするのに最適です。
PDF生成のためにIronPDFをiText 7より優先する主な利点は何ですか?
IronPDFはHTMLをPDFに変換するためのシンプルなAPIと迅速なセットアップを提供し、CSSとJavaScriptをフルサポートします。特に迅速な開発とウェブコンテンツ統合を必要とするアプリケーションに適しています。
iText 7はPDFの準拠をどのように扱っていますか?
iText 7はPDF/A、PDF/UA、およびPDF/Xなどの標準をサポートする準拠に厳しい業界向けに設計されており、PDF作成に対して強力な制御を提供するため、準拠が非常に重要なアプリケーションに適しています。
.NETプロジェクトにIronPDFをインストールする手順は何ですか?
IronPDFをインストールするには、Visual StudioでNuGetパッケージマネージャーを使用できます。パッケージマネージャーコンソールで`Install-Package IronPDF`コマンドを実行して、プロジェクトに追加します。
IronPDFはASP.NETのビューからPDFを作成できますか?
はい、IronPDFはASP.NETのビューを直接PDFドキュメントにレンダリングできます。この機能により、開発者は複雑なレイアウトとスタイルを持つウェブページを簡単にPDFに変換できます。
どのような種類のアプリケーションがIronPDFの使用から最も恩恵を受けますか?
レポートや請求書のような動的ウェブコンテンツをPDFに変換する必要があるアプリケーションは、IronPDFの使用から最も恩恵を受けます。迅速なセットアップとウェブ技術サポートにより、頻繁な更新やモダンなデザインを必要とするプロジェクトに最適です。
iText 7のモジュラーアーキテクチャはその利用にどのように影響しますか?
iText 7のモジュラーアーキテクチャにより、HTML変換やデジタル署名のような特定のPDF機能を必要に応じて追加できます。これにより柔軟性が提供されますが、各モジュールに対する追加の学習やインストールが必要になることがあります。
IronPDFとiText 7のライセンスの違いは何ですか?
IronPDFはAGPLの制約なしで商用アプリケーションに適した永続的なライセンスを提供します。一方、iText 7はオープンソースプロジェクト向けにAGPLライセンスで提供されており、商用利用には有料ライセンスが必要です。



