DynamicPDF vs IronPDF:技術比較ガイド
.NET開発者がPDF生成および操作ライブラリを評価するとき、DynamicPDFは幅広い機能を備えた長年の選択肢として際立っています。 しかし、製品モデルが細分化されているため、機能ごとに個別のライセンスが必要となり、多くのチームが代替案を検討しています。 IronPdfは最新のHTML/CSSベースのレンダリングでオールインワンのアプローチを提供し、機能を単一のパッケージに統合します。
この比較では、プロの開発者やアーキテクトが.NET PDFのニーズに対して十分な情報を得た上で決断できるように、技術的に関連する次元で両ライブラリを比較します。
DynamicPDFを理解する
DynamicPDFは、.NETエコシステムのPDFツールスイートで、長年にわたり開発者に貢献してきました。 このプラットフォームは、その強力な機能と豊富な機能で高く評価されており、信頼できるサービスの歴史も豊富です。
DynamicPDFのスイートには、特定のPDF操作に合わせた複数の製品が含まれています:PDFをゼロから作成するGenerator、既存のPDFを結合して操作するMerger、HTMLをPDFに変換するHTML Converter、レポート生成のReportWriter、プログラム印刷のPrint Managerなどです。 これらのコンポーネントは強力な機能を提供する一方で、別々に販売されているため、ユーザーが複数のライセンスや製品バージョンを管理する断片的な体験となっています。
このライブラリは、開発者がページ上の特定のX、Y座標に要素を配置する座標ベースの位置決めアプローチを採用しており、各要素に明示的な幅と高さの指定が必要です。
IronPDFの理解
IronPDFは.NET PDFライブラリで、PDFの生成、結合、操作を一つのまとまったパッケージの中で行います。 これにより、断片化された製品や異なるライセンスに対応する必要がなくなります。
IronPdfはHTMLからPDFへの変換に最新のChromiumレンダリングエンジンを使用し、座標ベースのポジショニングではなく、ドキュメントレイアウトにウェブテクノロジー(HTML、CSS、JavaScript)を取り入れています。 ライブラリは、.NET Framework 4.6.2+、.NET Core 3.1+、および.NET 6/7/8/9+をネイティブでサポートし、すべての機能にわたって統一された徹底したドキュメントを備えています。
製品モデルとライセンスの比較
これらの.NET PDFライブラリの基本的な構造の違いは、製品構成にあります。
| アスペクト | ダイナミックPDF | IronPDF |
|---|---|---|
| 製品モデル | 断片的(5つ以上の製品) | オールインワンライブラリ |
| ライセンスについて | 複数のライセンスが必要 | シングルライセンス |
| HTMLからPDFへ | 別途アドオン購入 | 組み込み、Chromiumベース |
| CSSサポート | 制限付き(アドオンが必要です) | フルCSS3とFlexbox/Grid |
| APIスタイル | 座標ベースのポジショニング | HTML/CSS + 操作API |
| ラーニングカーブ | Steep(複数のAPI) | ジェントル(ウェブ技術) |
| モダン.NET | .NET Standard 2.0 | .NET 6/7/8/9+ ネイティブ |
| ドキュメント | 製品間での広がり | 統一されたドキュメント |
DynamicPDFの別製品には以下が含まれます:
- DynamicPDFジェネレーター: PDFをゼロから作成します。
- DynamicPDF Merger: 既存のPDFを結合、分割、操作します。
- DynamicPDFコアスイート:ジェネレーターとマージャーの組み合わせ
- DynamicPDF HTML Converter:HTMLからPDFへの変換(別アドオン)
- DynamicPDF ReportWriter:レポート生成
- DynamicPDFプリントマネージャ:プログラムでPDFを印刷します。
完全なPDFソリューションには、DynamicPDFの3~5つのライセンスが必要です。 IronPdfは同等の機能を1つのパッケージに含んでいます。
コードの比較:一般的なPDF操作
HTMLからPDFへの変換
HTMLコンテンツをPDFに変換すると、APIアプローチの違いがわかります。
DynamicPDF:の翻訳
// NuGet: Install-Package ceTe.DynamicPDF.CoreSuite.NET
using ceTe.DynamicPDF;
using ceTe.DynamicPDF.Conversion;
class Program
{
static void Main()
{
string html = "<html><body><h1>Hello World</h1></body></html>";
HtmlConverter converter = new HtmlConverter(html);
converter.Convert("output.pdf");
}
}// NuGet: Install-Package ceTe.DynamicPDF.CoreSuite.NET
using ceTe.DynamicPDF;
using ceTe.DynamicPDF.Conversion;
class Program
{
static void Main()
{
string html = "<html><body><h1>Hello World</h1></body></html>";
HtmlConverter converter = new HtmlConverter(html);
converter.Convert("output.pdf");
}
}Imports ceTe.DynamicPDF
Imports ceTe.DynamicPDF.Conversion
Class Program
Shared Sub Main()
Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
Dim converter As New HtmlConverter(html)
converter.Convert("output.pdf")
End Sub
End ClassIronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
string html = "<html><body><h1>Hello World</h1></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
string html = "<html><body><h1>Hello World</h1></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}Imports IronPdf
Class Program
Shared Sub Main()
Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End ClassDynamicPDFは、この機能のために別のHTML Converterアドオンパッケージを必要とします。 IronPDFにはChromiumレンダリングエンジンを使ったHTMLからPDFへの変換機能が組み込まれており、RenderHtmlAsPdf()メソッドは保存する前にさらに操作できるPdfDocumentオブジェクトを返します。
高度なHTMLレンダリングオプションについては、HTMLからPDFへの変換ガイドをご覧ください。
PDFマージ操作
複数のPDFドキュメントを組み合わせることで、異なるAPIパターンを示します。
DynamicPDF:の翻訳
// NuGet: Install-Package ceTe.DynamicPDF.CoreSuite.NET
using ceTe.DynamicPDF;
using ceTe.DynamicPDF.Merger;
class Program
{
static void Main()
{
MergeDocument document = new MergeDocument("document1.pdf");
document.Append("document2.pdf");
document.Draw("merged.pdf");
}
}// NuGet: Install-Package ceTe.DynamicPDF.CoreSuite.NET
using ceTe.DynamicPDF;
using ceTe.DynamicPDF.Merger;
class Program
{
static void Main()
{
MergeDocument document = new MergeDocument("document1.pdf");
document.Append("document2.pdf");
document.Draw("merged.pdf");
}
}Imports ceTe.DynamicPDF
Imports ceTe.DynamicPDF.Merger
Class Program
Shared Sub Main()
Dim document As New MergeDocument("document1.pdf")
document.Append("document2.pdf")
document.Draw("merged.pdf")
End Sub
End ClassIronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}Imports IronPdf
Class Program
Shared Sub Main()
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
End Sub
End ClassDynamicPDF は Merger 名前空間の MergeDocument<//code> クラスを使用します(別途 Merger ライセンスが必要です)。 IronPDFは静的なPdfDocument.Merge()メソッドを使用し、FromFile()でロードされた複数のPdfDocumentオブジェクトを受け入れます。 どちらのアプローチもマージされたドキュメントを作成しますが、IronPDFのマージ機能は追加ライセンスなしで含まれています。
その他のマージ操作については、PDFマージドキュメントを参照してください。
PDFにテキストを追加する
テキストで文書を作成することで、座標ベースとHTMLベースのアプローチの違いを示します。
DynamicPDF:の翻訳
// NuGet: Install-Package ceTe.DynamicPDF.CoreSuite.NET
using ceTe.DynamicPDF;
using ceTe.DynamicPDF.PageElements;
class Program
{
static void Main()
{
Document document = new Document();
Page page = new Page(PageSize.Letter);
Label label = new Label("Hello from DynamicPDF!", 0, 0, 504, 100);
page.Elements.Add(label);
document.Pages.Add(page);
document.Draw("output.pdf");
}
}// NuGet: Install-Package ceTe.DynamicPDF.CoreSuite.NET
using ceTe.DynamicPDF;
using ceTe.DynamicPDF.PageElements;
class Program
{
static void Main()
{
Document document = new Document();
Page page = new Page(PageSize.Letter);
Label label = new Label("Hello from DynamicPDF!", 0, 0, 504, 100);
page.Elements.Add(label);
document.Pages.Add(page);
document.Draw("output.pdf");
}
}Imports ceTe.DynamicPDF
Imports ceTe.DynamicPDF.PageElements
Class Program
Shared Sub Main()
Dim document As New Document()
Dim page As New Page(PageSize.Letter)
Dim label As New Label("Hello from DynamicPDF!", 0, 0, 504, 100)
page.Elements.Add(label)
document.Pages.Add(page)
document.Draw("output.pdf")
End Sub
End ClassIronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body></body></html>");
var textStamper = new TextStamper()
{
Text = "Hello from IronPDF!",
FontSize = 20,
VerticalAlignment = VerticalAlignment.Top
};
pdf.ApplyStamp(textStamper);
pdf.SaveAs("output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body></body></html>");
var textStamper = new TextStamper()
{
Text = "Hello from IronPDF!",
FontSize = 20,
VerticalAlignment = VerticalAlignment.Top
};
pdf.ApplyStamp(textStamper);
pdf.SaveAs("output.pdf");
}
}Imports IronPdf
Imports IronPdf.Editing
Class Program
Shared Sub Main()
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<html><body></body></html>")
Dim textStamper As New TextStamper() With {
.Text = "Hello from IronPDF!",
.FontSize = 20,
.VerticalAlignment = VerticalAlignment.Top
}
pdf.ApplyStamp(textStamper)
pdf.SaveAs("output.pdf")
End Sub
End ClassDynamicPDFは、Label要素をPageオブジェクトに特定のX, Y座標で、明示的な幅と高さの値(0, 0, 504, 100)で追加した座標ベースの位置決めを使用します。 IronPdfはTextStamperとアライメントプロパティ、またはHTMLベースのコンテンツレンダリングを使用します。 HTMLのアプローチにより、ウェブ技術に精通した開発者は、CSSを使用してポジショニングとスタイリングを行い、ドキュメントをデザインすることができます。
メソッド マッピング リファレンス
DynamicPDFの移行を評価したり、機能を比較したりする開発者のために、このマッピングは同等の操作を示します:
コア クラス マッピング
| ダイナミックPDF | IronPDF |
|---|---|
ドキュメント + ページ</code | ChromePdfRenderer</code |
ラベル, テキストエリア</code | HTML <p>、<div>。 |
表2</code | HTML <テーブル> |
MergeDocument</code | PdfDocument.Merge()を使用してください。 |
HtmlConverter</code | ChromePdfRenderer</code |
document.Draw()</code | pdf.SaveAs() / pdf.BinaryData<//code |
ドキュメント操作マッピング
| ダイナミックPDF | IronPDF |
|---|---|
document.Draw("file.pdf")。 | pdf.SaveAs("file.pdf"). |
document.Draw() → byte[]. | pdf.BinaryData</code |
pdfDoc.Pages[i].GetText()。 | pdf.ExtractTextFromPage(i)のようにします。 |
Aes256Security</code | pdf.SecuritySettings</code |
form.Fields["name"]. | pdf.Form.GetFieldByName("name"). |
ページ番号の構文
| ダイナミックPDF | IronPDF |
|---|---|
%CP%% (現在のページ) | {ページ}</code |
%TP%% (全ページ) | {総ページ数}</code |
名前空間マッピング
| DynamicPDF名前空間 | IronPDF 同等物 |
|---|---|
ceTe.DynamicPDF</code | IronPdf(アイアンPDF |
ceTe.DynamicPDF.PageElements。 | HTML要素 |
ceTe.DynamicPDF.Merger。 | IronPdf(アイアンPDF |
ceTe.DynamicPDF.Conversion。 | IronPdf(アイアンPDF |
ceTe.DynamicPDF.Cryptography。 | IronPdf(セキュリティ設定) |
ceTe.DynamicPDF.Forms。 | IronPdf(フォームプロパティ) |
機能比較の概要
| フィーチャー | ダイナミックPDF | IronPDF |
|---|---|---|
| ゼロからのPDF生成 | ✅ (ジェネレーター) | ✅ |
| HTMLからPDFへの変換 | ✅ (別アドオン) | ✅ (ビルトイン) |
| PDFの結合/分割 | ✅ (合併) | ✅ |
| フォーム入力 | ✅ | ✅ |
| テキスト抽出 | ✅ | ✅ |
| デジタル署名 | ✅ | ✅ |
| 暗号化/パスワード | ✅ | ✅ |
| 透かし | ✅ | ✅ |
| ヘッダー/フッター | ✅ | ✅ (HTMLベース) |
| ページ番号 | ✅ (%CP%% | ✅ ({ページ}) |
シフト:座標ベース vs HTML/CSS
DynamicPDFとIronPDFの最も大きな違いは、ドキュメントレイアウトに対する基本的なアプローチにあります。
DynamicPDFの座標ベースのアプローチ
Document document = new Document();
Page page = new Page(PageSize.Letter);
Label label = new Label("Hello", 100, 200, 300, 50, Font.Helvetica, 12);
page.Elements.Add(label);
document.Pages.Add(page);
document.Draw("output.pdf");Document document = new Document();
Page page = new Page(PageSize.Letter);
Label label = new Label("Hello", 100, 200, 300, 50, Font.Helvetica, 12);
page.Elements.Add(label);
document.Pages.Add(page);
document.Draw("output.pdf");Dim document As New Document()
Dim page As New Page(PageSize.Letter)
Dim label As New Label("Hello", 100, 200, 300, 50, Font.Helvetica, 12)
page.Elements.Add(label)
document.Pages.Add(page)
document.Draw("output.pdf")DynamicPDFでは、すべての要素について正確なピクセル位置(X=100, Y=200)と寸法(width=300, height=50)を指定する必要があります。 このため、正確なコントロールが可能ですが、レイアウトが変更された場合は、慎重な計算と調整が必要になります。
IronPDFのHTML/CSSアプローチ
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1 style='margin-left:100px'>Hello</h1>");
pdf.SaveAs("output.pdf");var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1 style='margin-left:100px'>Hello</h1>");
pdf.SaveAs("output.pdf");Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1 style='margin-left:100px'>Hello</h1>")
pdf.SaveAs("output.pdf")IronPdfはほとんどの開発者がすでに知っているウェブテクノロジーを使用しています。 複雑なレイアウトは、CSS Flexbox、Grid、または従来のポジショニングを使用し、Chromiumエンジンは、ブラウザがコンテンツを表示するのとまったく同じようにレンダリングします。
チームがDynamicPDFからIronPDFへの移行を検討するとき
開発チームがDynamicPDFからIronPdfへの移行を評価する理由はいくつかあります:
ライセンスの統合:3~5つのDynamicPDFライセンスを別々に管理すると、管理上のオーバーヘッドとコストの複雑さが生じます。 IronPDFのシングルライセンスはすべての機能をカバーし、調達とコンプライアンスのトラッキングを簡素化します。
HTML/CSSに精通していること:ウェブ開発の経験があるチームは、IronPDFのHTMLベースのアプローチが座標ベースの位置決めよりも直感的であることに気づきます。 既存のHTMLテンプレートは、デザインを変更することなくPDFに変換できます。
最新の.NETサポート: IronPDFは.NET 6/7/8/9+のネイティブサポートを提供し、DynamicPDFは.NET Standard 2.0をターゲットにしています。最新のアプリケーションを構築するチームはネイティブランタイムの最適化から恩恵を受けることができます。
アドオンの排除: DynamicPDFのHTML Converterは別途購入する必要があります。 IronPdfはFlexboxやグリッドレイアウトを含むCSS3をフルサポートし、HTMLからPDFへの変換をコア機能として含んでいます。
統一されたドキュメント: DynamicPDFを学ぶには、複数の製品にまたがるドキュメントをナビゲートする必要があります。 IronPdfの統一されたドキュメントはすべての機能を一箇所でカバーします。
APIの簡素化:複数のDynamicPDFクラス(Document, Page, Label, MergeDocument, HtmlConverter)をIronPDFの合理化されたAPIに変換することで、コードの複雑さとメンテナンスの負担を軽減します。
長所と考慮点
DynamicPDFの強み
- 確立された評判: 一貫した更新と信頼性の高いサービスを提供する市場での年数。
- 包括的な機能: PDFの作成、操作、印刷のための広範な機能。
- 柔軟な使用: 最新の.NETとレガシーフレームワークの両方をサポートしています。
- きめ細かな制御:座標ベースの位置決めにより、要素を正確に配置できます。
DynamicPDFについての考察
- 製品の断片化: Generator、Merger、HTML Converter、およびその他の製品のライセンスが分かれている。
- 複雑な価格設定:複数のライセンスをナビゲートすることは、包括的な機能のためのコストを増加させます。
- レガシーコードベース: 最新の.NET標準と必ずしも一致するとは限りません。
- 分離されたドキュメント:製品固有のリソースにまたがる情報
- 学習曲線:複数のAPIは、異なる操作のために異なるパターンを学習する必要があります。
IronPDFの強み
IronPDFについての考察
- パラダイムチェンジ:座標ベースのレイアウトはHTML/CSSへの変換が必要です。
- 異なるページ番号:
%CP%%の代わりに{page}構文を使用します。
結論
DynamicPDFとIronPDFはどちらも.NET開発者のために広範なPDF機能を提供しますが、製品構成とドキュメントレイアウトに対するアプローチは異なります。 DynamicPDFは、細分化された製品群によって確立された信頼性を提供する一方で、複数のライセンスと座標ベースのポジショニングの専門知識を必要とします。
IronPdfはオールインワンパッケージ、HTML/CSSベースのレンダリング、簡素化されたライセンスで現代的な選択肢を提供します。 ライセンスの統合、ウェブテクノロジーへの精通、APIの合理化を求めるチームにとって、IronPdfはこれらの特定の要件に対応します。
組織が.NET 10、C# 14、2026年までのアプリケーション開発を計画する中で、その選択は特定の優先順位によって決まります。 DynamicPDFのエコシステムに投資し、確立された座標ベースのテンプレートを使用しているチームは、引き続きそこで価値を見出すことができます。 ウェブテクノロジーが支配的でライセンスのシンプルさが重要な現代のアプリケーションの大部分にとって、IronPdfはよりまとまりのあるアプローチを提供します。
無料トライアルでIronPDFの評価を開始し、包括的なドキュメントを参照して、特定の要件への適合性を評価してください。