
Adobe Proを使わずにPDFを編集する方法(初心者チュートリアル)
質問: iTextでASP.NETでPDFを作成でき、より良い代替手段はありますか? はい -- iTextは長年利用されている .NET PDFライブラリですが、IronPDFはモダンなHTML-to-PDFアプローチを提供し、低レベルのPDF文書構造を学ぶ必要を排除します。 このガイドでは、両方のライブラリを実際のコード例と比較し、プロジェクトに適したツールを選択できるようにします。
iTextとIronPDFの主な違いは何ですか?
iTextはJava iTextライブラリ for .NETポートであり、そのdocumentクラスと低レベルのPDF内容操作を通じてプログラム可能なPDF作成を提供します。 強力ではあるが、iTextを使用するには、PDFドキュメント構造の理解が必要で、ドキュメントオブジェクトを操作し、座標とページサイズ仕様を使用して要素を手動で位置決めする必要があります。 API は必然的に冗長になります。ライブラリは PDF 仕様の複雑さを完全に公開するため、洗練された出力を生成する前に学ぶべきことがたくさんあります。
IronPDFは、Chromeレンダリングエンジンを用いたHTMLからPDFへの変換に重点を置いた、独自のアプローチを採用しています。開発者は使い慣れたHTMLとCSSを使用してPDFファイルを生成できるため、PDFの作成はWebページのデザインと同じくらい簡単です。 IronPDF はPDF 生成ロジックをバックグラウンドで処理し、最新のスタイルとJavaScriptサポートを備えたドキュメントを作成できるようにします。 レンダリング パイプラインは Chromium を採用しているため、フレックスボックス、グリッド、Web フォント、JavaScript で生成されたコンテンツなど、最新のブラウザーで動作するレイアウトはすべて PDF 出力に忠実に変換されます。
このアーキテクチャの違いの実質的な結果は、iTextはPDFファイルのあらゆるバイトに対する精密な座標レベル制御を望む開発者に報いを与え、IronPDFは既に持っているスキルを使用して迅速に視覚的に洗練されたドキュメントを作成したい開発者に報いを与えます。 ほとんどの Web アプリケーション シナリオ (請求書、レポート、注文確認、データのエクスポートなど) では、HTML アプローチの方が構築が速く、保守も簡単です。
| 特徴 | iText | IronPDF |
|---|---|---|
| HTML から PDF へ | 制限あり(XMLWorkerアドオン経由) | 完全なChromeエンジンレンダリング |
| CSSサポート | 部分的 | 完全なCSS3サポート |
| JavaScriptサポート | None | はい(Chrome エンジン経由) |
| ライセンス | AGPL(商用ライセンスが必要) | 商用、ロイヤリティフリー |
| 学習曲線 | Steep(PDF API の知識が必要) | 低(HTML/CSSで十分) |
| NuGet インストール | Install-Package iTextSharp | Install-Package IronPdf |
| .NET互換性 | .NET Framework、 .NET Core | .NET 8、 .NET 9、 .NET 10、フレームワーク |
これらのライブラリを.NETプロジェクトにインストールするにはどうすればよいでしょうか?
どちらのライブラリのインストールも、 NuGetパッケージ マネージャーから始まります。 iTextについて、より新しいiTextバージョンはAGPLライセンスの下で動作し、アプリケーションをオープンソースにするか商用ライセンスを購入する必要があります:
# Install iTextSharp via Package Manager Console
Install-Package iTextSharp
IronPDFの場合は、 NuGetパッケージ マネージャー コンソール、 .NET CLI、または Visual Studio のNuGet UI で直接検索してインストールできます。
インストール後、 IronPDF は1 つの using ステートメントで使用できるようになります。 基本的な PDF 生成には追加の構成は必要ありません。 ライセンス キーの設定、レンダリング オプションの構成、クラウド環境での PDF の生成などの高度なシナリオについては、 IronPDF のドキュメントを参照してください。 IronPDF は、Docker または Kubernetes で実行されるコンテナー化された環境を含む Linux、macOS、および Windows のデプロイメントをサポートしているため、最新のクラウドネイティブASP.NETアプリケーションに最適です。
各ライブラリを使用して基本的な PDF ドキュメントを作成するにはどうすればよいですか?
API の違いを最も明確に理解する方法は、両方のライブラリを並べて表示した単純な"Hello World"PDF を作成することです。
iTextによるPDF生成
iTextを使用すると、PdfWriterを直接操作します:
using iTextSharp.text;
using iTextSharp.text.pdf;
var memoryStream = new MemoryStream();
Document pdfDoc = new Document(PageSize.A4, 25, 25, 25, 15);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, memoryStream);
pdfDoc.Open();
var paragraph = new Paragraph("Hello World - PDF Document");
paragraph.Font = FontFactory.GetFont(FontFactory.HELVETICA, 16);
pdfDoc.Add(paragraph);
pdfDoc.Add(new Paragraph("Creating PDF documents with iTextSharp"));
pdfDoc.Close();
// Return as a downloadable file
var pdfBytes = memoryStream.ToArray();Imports iTextSharp.text
Imports iTextSharp.text.pdf
Dim memoryStream As New MemoryStream()
Dim pdfDoc As New Document(PageSize.A4, 25, 25, 25, 15)
Dim writer As PdfWriter = PdfWriter.GetInstance(pdfDoc, memoryStream)
pdfDoc.Open()
Dim paragraph As New Paragraph("Hello World - PDF Document")
paragraph.Font = FontFactory.GetFont(FontFactory.HELVETICA, 16)
pdfDoc.Add(paragraph)
pdfDoc.Add(New Paragraph("Creating PDF documents with iTextSharp"))
pdfDoc.Close()
' Return as a downloadable file
Dim pdfBytes As Byte() = memoryStream.ToArray()これは、FontFactoryがどのように相互作用するかを知る必要があります -- PDF生成に不慣れな開発者にとって実質的な学習投資が求められます。
IronPDF での PDF の生成
IronPDFでは、同等のタスクで使い慣れた HTML を使用します。
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
<h1>Hello World - PDF Document</h1>
<p>Creating PDFs with IronPDF is straightforward!</p>
");
var pdfBytes = pdf.BinaryData;Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("
<h1>Hello World - PDF Document</h1>
<p>Creating PDFs with IronPDF is straightforward!</p>
")
Dim pdfBytes = pdf.BinaryDataIronPDF のアプローチにより、HTML を直接記述できるため、低レベルの PDF 要素を操作する必要がなくなります。 ChromePdfRendererクラスは、Chromium ベースのエンジンを使用してすべてのレンダリングを内部的に処理し、ピクセル精度の出力を保証します。
画像と CSS を使用してスタイル設定された PDF を作成するにはどうすればよいですか?
スタイル設定されたドキュメントは、2 つのライブラリ間の最も大きなギャップを明らかにします。 請求書、レポート、またはブランド化されたドキュメントを生成する場合、 IronPDFの CSS ベースのスタイル設定により、必要なコードの量が大幅に削減されます。
IronPDFによる請求書生成
using IronPdf;
var html = @"
<style>
body { font-family: Arial, sans-serif; margin: 0; }
.invoice-header { background: #4CAF50; color: white; padding: 20px; }
.invoice-table { width: 100%; border-collapse: collapse; margin-top: 20px; }
.invoice-table th, .invoice-table td {
border: 1px solid #ddd; padding: 8px; text-align: left;
}
.invoice-table th { background-color: #f2f2f2; }
.total { font-size: 18px; font-weight: bold; margin-top: 16px; }
</style>
<div class='invoice-header'>
<h1>Invoice #2024-001</h1>
<p>Due: March 15, 2024</p>
</div>
<table class='invoice-table'>
<tr><th>Item</th><th>Quantity</th><th>Unit Price</th><th>Total</th></tr>
<tr><td>PDF License</td><td>1</td><td>$599</td><td>$599</td></tr>
<tr><td>Support Package</td><td>1</td><td>$199</td><td>$199</td></tr>
</table>
<p class='total'>Grand Total: $798</p>
";
var renderer = new ChromePdfRenderer();
var pdfDocument = renderer.RenderHtmlAsPdf(html);
var pdfBytes = pdfDocument.BinaryData;Imports IronPdf
Dim html As String = "
<style>
body { font-family: Arial, sans-serif; margin: 0; }
.invoice-header { background: #4CAF50; color: white; padding: 20px; }
.invoice-table { width: 100%; border-collapse: collapse; margin-top: 20px; }
.invoice-table th, .invoice-table td {
border: 1px solid #ddd; padding: 8px; text-align: left;
}
.invoice-table th { background-color: #f2f2f2; }
.total { font-size: 18px; font-weight: bold; margin-top: 16px; }
</style>
<div class='invoice-header'>
<h1>Invoice #2024-001</h1>
<p>Due: March 15, 2024</p>
</div>
<table class='invoice-table'>
<tr><th>Item</th><th>Quantity</th><th>Unit Price</th><th>Total</th></tr>
<tr><td>PDF License</td><td>1</td><td>$599</td><td>$599</td></tr>
<tr><td>Support Package</td><td>1</td><td>$199</td><td>$199</td></tr>
</table>
<p class='total'>Grand Total: $798</p>
"
Dim renderer As New ChromePdfRenderer()
Dim pdfDocument = renderer.RenderHtmlAsPdf(html)
Dim pdfBytes = pdfDocument.BinaryDataiTextによる請求書の生成
iTextで同様の出力を達成するには、視覚的な要素をすべてプログラム的に構築する必要があります:
using iTextSharp.text;
using iTextSharp.text.pdf;
var output = new MemoryStream();
var document = new Document(PageSize.A4);
PdfWriter.GetInstance(document, output);
document.Open();
// Header -- manual font and color setup
var titleFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 20,
new BaseColor(255, 255, 255));
var headerParagraph = new Paragraph("Invoice #2024-001", titleFont);
document.Add(headerParagraph);
// Table -- each cell must be created individually
PdfPTable table = new PdfPTable(4);
table.WidthPercentage = 100;
string[] headers = { "Item", "Quantity", "Unit Price", "Total" };
foreach (var h in headers)
{
var cell = new PdfPCell(new Phrase(h,
FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10)));
cell.BackgroundColor = new BaseColor(242, 242, 242);
table.AddCell(cell);
}
table.AddCell("PDF License");
table.AddCell("1");
table.AddCell("$599");
table.AddCell("$599");
document.Add(table);
var totalFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 14);
document.Add(new Paragraph("Grand Total: $798", totalFont));
document.Close();Imports iTextSharp.text
Imports iTextSharp.text.pdf
Dim output As New MemoryStream()
Dim document As New Document(PageSize.A4)
PdfWriter.GetInstance(document, output)
document.Open()
' Header -- manual font and color setup
Dim titleFont As Font = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 20, New BaseColor(255, 255, 255))
Dim headerParagraph As New Paragraph("Invoice #2024-001", titleFont)
document.Add(headerParagraph)
' Table -- each cell must be created individually
Dim table As New PdfPTable(4)
table.WidthPercentage = 100
Dim headers As String() = {"Item", "Quantity", "Unit Price", "Total"}
For Each h As String In headers
Dim cell As New PdfPCell(New Phrase(h, FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10)))
cell.BackgroundColor = New BaseColor(242, 242, 242)
table.AddCell(cell)
Next
table.AddCell("PDF License")
table.AddCell("1")
table.AddCell("$599")
table.AddCell("$599")
document.Add(table)
Dim totalFont As Font = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 14)
document.Add(New Paragraph("Grand Total: $798", totalFont))
document.Close()違いは明らかです: IronPDFはCSS、モダンなHTML、JavaScriptを扱い、iTextはそれぞれの要素、フォント指定、セルごとのテーブル構築を手動で作成する必要があります。 数十の異なるテンプレートを生成するドキュメント中心のアプリケーションの場合、コード量のこの差は時間の経過とともに大幅に増大します。
ASP.NETでサーバー側 PDF 生成をどのように処理しますか?
どちらのライブラリも、 ASP.NETアプリケーションのサーバー側 PDF 生成をサポートしています。 ダウンロード可能なファイル応答として PDF を返すパターンは、どのライブラリがバイトを生成するかに関係なく同様です。 実稼働環境で使用する場合の主な考慮事項は、メモリ管理、スレッド セーフティ、および応答構成です。 どちらのライブラリもメモリ内ストリームを使用するため、大きな PDF を必要以上に長くメモリ内に保持しないようにする必要があります。 IronPDFのChromePdfRendererはリクエストごとにインスタンス化されるように設計されており、同時リクエスト間で共有状態を心配する必要はありません。
IronPDFを使用したASP.NET Coreコントローラーアクション
using IronPdf;
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
[HttpGet("invoice/{id}")]
public IActionResult GenerateInvoice(int id)
{
var html = BuildInvoiceHtml(id); // your HTML template
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
var pdf = renderer.RenderHtmlAsPdf(html);
return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
private static string BuildInvoiceHtml(int id)
{
return $"<h1>Invoice #{id}</h1><p>Generated on {DateTime.UtcNow:yyyy-MM-dd}</p>";
}
}Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
<ApiController>
<Route("api/[controller]")>
Public Class PdfController
Inherits ControllerBase
<HttpGet("invoice/{id}")>
Public Function GenerateInvoice(id As Integer) As IActionResult
Dim html As String = BuildInvoiceHtml(id) ' your HTML template
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
Dim pdf = renderer.RenderHtmlAsPdf(html)
Return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf")
End Function
Private Shared Function BuildInvoiceHtml(id As Integer) As String
Return $"<h1>Invoice #{id}</h1><p>Generated on {DateTime.UtcNow:yyyy-MM-dd}</p>"
End Function
End ClassASP.NET MVC (非Core) プロジェクトの場合、FileResultを同じ方法で返します。 IronPDFはURLからPDFを生成する機能もサポートしており、HTML文字列を作成するのではなく、既存のWebページを変換する場合に役立ちます。
また、ヘッダーとフッターを追加したり、デジタル署名を適用したり、パスワード保護を設定したり、IronPDF のドキュメント編集 API を使用して複数の PDF を結合したりすることもできます。これらはすべて同じパッケージから実行できます。
iTextからIronPDFへの移行方法は?
既存のiTextプロジェクトをIronPDFに移行することは、単純なパターンに従います:
- ドキュメントモデルのコードをHTMLテンプレートに置換します。
PdfPCellオブジェクトを構築する代わりに、HTML文字列を作成するか、HTMLファイルを読み込みます。既存のCSSスタイルシートとRazor部分ビューを直接再利用できます。 - レンダリング呼び出しを交換します。
new ChromePdfRenderer().RenderHtmlAsPdf(html)に置き換えます。 - バイト抽出を更新します。
pdf.BinaryDataに置き換えます。 - 高度な設定を転送します。 ページマージン、暗号化、ドキュメントメタデータなどのiText機能には、IronPDFの
PdfDocumentAPIに直接の同等品があります。 5.**出力の忠実性を検証します。**代表的なドキュメントで両方の出力を並べて実行します。 IronPDF は、PDF ネイティブのレイアウト エンジンではなく、完全なブラウザー レンダリング エンジンを使用するため、通常はより優れた視覚的な結果を生成します。
既存の HTML テンプレート (電子メール ジェネレーター、 Razorビュー、レポート ビルダーなど) を持つチームの場合、移行は数日ではなく数時間で完了することがよくあります。 IronPDF は、 ASP.NET Core内でRazorビューを直接 PDF にレンダリングできるため、移行がさらに加速されます。 CSS ベースのドキュメント デザイン (たとえば、印刷スタイルシートを使用してページ区切りや余白を制御するなど) に投資してきたチームでは、それらのスキルがIronPDFに直接移行されることに気付くでしょう。
IronPDF移行ガイドを参照して、暗号化、スタンピング、その他の高度なiText機能をカバーする詳細なパターンを確認してください。
どちらのライブラリを選ぶべきか?
新しいプロジェクトを開始する開発者やiTextから移行する開発者には、次の要因が適用されます:
ライセンス: iTextは最新バージョンでAGPLライセンスを使用しており、アプリケーションをオープンソースにするかiText Groupから商用ライセンスを購入する必要があります。 IronPDFは、オープンソースの義務がないわかりやすい商用ライセンスを提供します。 プロジェクトがクローズドソースまたは商用である場合、この区別だけで選択が決まる場合があります。
学習曲線: IronPDFはHTMLベースのアプローチを採用しているため、PDF固有のAPIの学習時間を短縮できます。チームがHTMLとCSSに精通していれば、 IronPDFによるPDF生成はすぐに開始できます。 PDF 座標系、グリフ エンコーディング、フォント埋め込みなどを学習する必要はありません。IronPDFはこれらすべてを透過的に処理します。
機能カバレッジ: IronPDFはPDF/A準拠、フォーム記入、透かし入れなどのサポートを提供しており、すべて単一のNuGetパッケージから提供されます。 デジタル署名や PDF 結合などの高度な機能も追加の依存関係なしで含まれています。
移行パス: iTextからIronPDFへの移行は、ドキュメント操作コードをHTMLテンプレートに置き換え、レンダリング呼び出しを更新することを含みます。 IronPDF は完全なブラウザ エンジンを使用するため、通常は出力品質が高く、生成されるコードは大幅に短くなり、保守が容易になります。
PDF レンダリング エンジンの仕組みやそれらの違いに関する背景情報については、 Mozilla の PDF に関するドキュメントやAdobe の PDF 仕様リソースが役立ちます。 iText Group の公式サイトでは、 AGPL の条件について詳しく説明しています。
次のステップは何ですか?
ASP.NETプロジェクトでIronPDFを使い始めるには:
- NuGetパッケージをインストールします:
Install-Package IronPdf - ファイルに
using IronPdf;を追加 RenderHtmlAsPdf()を呼び出します- コントローラーから
FileResultとして返します
さらに詳しく知るには、次のリソースを参照してください。
- IronPDF HTMLからPDFへのドキュメント- 完全なレンダリングオプションと例
- ASP.NET Core PDF 生成ガイド- Razorビュー レンダリングとコントローラー パターン
- PDFのセキュリティと暗号化- パスワード保護と権限
- PDFの結合と分割- 複数の文書を結合
- IronPDF の無料トライアル- 開発中に透かしなしですべての機能をテストします
[[i: (iTextはその所有者の登録商標です。 このサイトは、iTextと提携しておらず、承認されてもおらず、後援されてもいません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。)]]

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


