比較

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 は、PDF の生成、結合、および操作を 1 つの統合パッケージに統合した .NET PDF ライブラリです。 これにより、断片化された製品や異なるライセンスに対応する必要がなくなります。

IronPdfはHTMLからPDFへの変換に最新のChromiumレンダリングエンジンを使用し、座標ベースのポジショニングではなく、ドキュメントレイアウトにウェブテクノロジー(HTML、CSS、JavaScript)を取り入れています。 このライブラリは、.NET Framework 4.6.2+、.NET Core 3.1+、.NET 6/7/8/9+ をネイティブにサポートし、すべての機能にわたって徹底したドキュメントが統合されています。

製品モデルとライセンスの比較

これらの.NET PDFライブラリの基本的な構造の違いは、製品構成にあります。

アスペクトダイナミックPDFIronPDF
製品モデル断片的(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 Core Suite:ジェネレータとマージャーの統合
  • DynamicPDF HTML Converter: HTMLからPDFへの変換(別アドオン)
  • DynamicPDF ReportWriter:レポート生成
  • DynamicPDF Print Manager:プログラムで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");
    }
}
$vbLabelText   $csharpLabel

IronPDF:

// 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");
    }
}
$vbLabelText   $csharpLabel

DynamicPDFは、この機能のために別の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");
    }
}
$vbLabelText   $csharpLabel

IronPDF:

// 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");
    }
}
$vbLabelText   $csharpLabel

DynamicPDF は 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");
    }
}
$vbLabelText   $csharpLabel

IronPDF:

// 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");
    }
}
$vbLabelText   $csharpLabel

DynamicPDFは、Label要素をPageオブジェクトに特定のX, Y座標で、明示的な幅と高さの値(0, 0, 504, 100)で追加した座標ベースの位置決めを使用します。 IronPdfはTextStamperとアライメントプロパティ、またはHTMLベースのコンテンツレンダリングを使用します。 HTMLのアプローチにより、ウェブ技術に精通した開発者は、CSSを使用してポジショニングとスタイリングを行い、ドキュメントをデザインすることができます。

メソッド マッピング リファレンス

DynamicPDFの移行を評価したり、機能を比較したりする開発者のために、このマッピングは同等の操作を示します:

コア クラス マッピング

ダイナミックPDFIronPDF
<コード>ドキュメント</コード> + <コード>ページ</コード<コード>ChromePdfRenderer</コード
<コード>ラベル</コード>, <コード>テキストエリア</コードHTML <p><div>
<コード>表2</コードHTML <コード><テーブル><コード></コード
<コード>MergeDocument</コードPdfDocument.Merge()を使用してください。
<コード>HtmlConverter</コード<コード>ChromePdfRenderer</コード
<コード>document.Draw()</コードpdf.SaveAs() / pdf.BinaryData<//code

ドキュメント操作マッピング

ダイナミックPDFIronPDF
document.Draw("file.pdf")pdf.SaveAs("file.pdf").
document.Draw() → byte[].<コード>pdf.BinaryData</コード
pdfDoc.Pages[i].GetText()pdf.ExtractTextFromPage(i)のようにします。
<コード>Aes256Security</コード<コード>pdf.SecuritySettings</コード
form.Fields["name"].pdf.Form.GetFieldByName("name").

ページ番号の構文

ダイナミックPDFIronPDF
%CP%% (現在のページ)<コード>{ページ}</コード
%TP%% (全ページ)<コード>{総ページ数}</コード

名前空間マッピング

DynamicPDF名前空間IronPDF 同等物
<コード>ceTe.DynamicPDF</コードIronPdf(アイアンPDF
ceTe.DynamicPDF.PageElementsHTML要素
ceTe.DynamicPDF.MergerIronPdf(アイアンPDF
ceTe.DynamicPDF.ConversionIronPdf(アイアンPDF
ceTe.DynamicPDF.CryptographyIronPdf(セキュリティ設定)
ceTe.DynamicPDF.FormsIronPdf(フォームプロパティ)

機能比較の概要

フィーチャーダイナミックPDFIronPDF
ゼロからの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");
$vbLabelText   $csharpLabel

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");
$vbLabelText   $csharpLabel

IronPdfはほとんどの開発者がすでに知っているウェブテクノロジーを使用しています。 複雑なレイアウトは、CSS Flexbox、Grid、または従来のポジショニングを使用し、Chromiumエンジンは、ブラウザがコンテンツを表示するのとまったく同じようにレンダリングします。

チームがDynamicPDFからIronPDFへの移行を検討するとき

開発チームがDynamicPDFからIronPdfへの移行を評価する理由はいくつかあります:

ライセンスの統合: 3 ~ 5 個の個別のダイナミックPDFライセンスを管理すると、管理オーバーヘッドとコストの複雑さが生じます。 IronPDFのシングルライセンスはすべての機能をカバーし、調達とコンプライアンスのトラッキングを簡素化します。

HTML/CSS の知識: Web 開発経験のあるチームは、座標ベースの配置よりもIronPDFの HTML ベースのアプローチの方が直感的だと感じています。 既存のHTMLテンプレートは、デザインを変更することなくPDFに変換できます。

最新の.NETサポート: IronPDFは.NET 6/7/8/9+をネイティブサポートし、DynamicPDFは.NET Standard 2.0をターゲットとしています。最新のアプリケーションを構築するチームは、ネイティブランタイム最適化のメリットを享受できます。

アドオンの排除:ダイナミックPDFの HTML コンバーターは別途購入する必要があります。 IronPdfはFlexboxやグリッドレイアウトを含むCSS3をフルサポートし、HTMLからPDFへの変換をコア機能として含んでいます。

統合ドキュメント:ダイナミックPDFを学習するには、複数の製品にまたがるドキュメントをナビゲートする必要があります。 IronPdfの統一されたドキュメントはすべての機能を一箇所でカバーします。

API の簡素化:複数のダイナミックPDFクラス (Document、Page、Label、MergeDocument、HtmlConverter) をIronPDFの合理化された API に変換することで、コードの複雑さとメンテナンスの負担が軽減されます。

長所と考慮点

DynamicPDFの強み

-確立された評判:一貫したアップデートと信頼できるサービスで長年の市場での実績 -包括的な機能: PDFの作成、操作、印刷のための広範な機能 -使用時の柔軟性:最新の.NETフレームワークと従来のフレームワークの両方をサポート -きめ細かな制御:座標ベースの配置により、正確な要素配置が可能になります

DynamicPDFについての考察

-製品の断片化:ジェネレーター、マージャー、HTML コンバーター、およびその他の製品の個別のライセンス -複雑な価格設定:複数のライセンスを管理すると、包括的な機能のコストが増加します。 -レガシーコードベース:必ずしも最新の.NET標準に準拠しているとは限りません -個別のドキュメント:情報は製品固有のリソースに分散しています -学習曲線:複数の API では、異なる操作ごとに異なるパターンを学習する必要があります。

IronPDFの強み

-オールインワンパッケージ: 1つのライブラリで3~5個のDynamicPDFパッケージを置き換えます -最新のレンダリング: CSS3 を完全サポートした Chromium エンジン

  • Webテクノロジー: Web開発者に馴染みのあるHTML/CSSアプローチ -簡素化されたライセンス: 1つのライセンスですべての機能を利用できます -最新の .NET: .NET 6/7/8/9 以降のネイティブ サポート -統合API:すべての操作で一貫したパターン -包括的なリソース:広範なチュートリアルドキュメント

IronPDFについての考察

-パラダイムチェンジ:座標ベースのレイアウトではHTML/CSSへの変換が必要 -ページ番号の付け方: %%CP%%の代わりに{page}構文を使用します

結論

DynamicPDF とIronPDFはどちらも .NET 開発者向けに広範な PDF 機能を提供しますが、製品の構成とドキュメントのレイアウトに対するアプローチは異なります。 DynamicPDFは、細分化された製品群によって確立された信頼性を提供する一方で、複数のライセンスと座標ベースのポジショニングの専門知識を必要とします。

IronPdfはオールインワンパッケージ、HTML/CSSベースのレンダリング、簡素化されたライセンスで現代的な選択肢を提供します。 ライセンスの統合、ウェブテクノロジーへの精通、APIの合理化を求めるチームにとって、IronPdfはこれらの特定の要件に対応します。

組織が.NET 10、C# 14、2026年までのアプリケーション開発を計画する中で、その選択は特定の優先順位によって決まります。 DynamicPDFのエコシステムに投資し、確立された座標ベースのテンプレートを使用しているチームは、引き続きそこで価値を見出すことができます。 ウェブテクノロジーが支配的でライセンスのシンプルさが重要な現代のアプリケーションの大部分にとって、IronPdfはよりまとまりのあるアプローチを提供します。

無料トライアルでIronPDFの評価を開始し、包括的なドキュメントを参照して、特定の要件への適合性を評価してください。