移行ガイド C#でDynamicPDFからIronPDFに移行する方法 カーティス・チャウ 公開日:2026年1月11日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る なぜDynamicPDFからIronPDFに移行するのですか? DynamicPDFの製品の断片化は、移行の主な原動力となっています。 ライセンスモデルを理解することは、現在の実装の真のコストを評価するために不可欠です。 製品の断片化の問題 DynamicPDFは、別々のライセンスで別々の製品として販売されています: DynamicPDF Generator: PDFをゼロから作成 DynamicPDF Merger:既存のPDFを結合、分割、操作します(別途購入) DynamicPDF Core Suite:ジェネレータとマージャーの統合 DynamicPDF ReportWriter:レポート生成 DynamicPDF HTML Converter: HTMLからPDFへの変換(別アドオン) DynamicPDF Print Manager:プログラムでPDFを印刷する 完全なPDFソリューションには、DynamicPDFの3-5ライセンスが必要です。 IronPDFは1つのパッケージにすべてを含んでいます。 アーキテクチャの比較 アスペクト ダイナミック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+ ネイティブ 主な移行のメリット 1.単一パッケージ: 1つのNuGetパッケージで3~5個のDynamicPDFパッケージを置き換える 2.最新のレンダリング: Chromium エンジンと従来のレンダリング Webテクノロジー:座標ベースの配置の代わりにHTML/CSSを使用する 4.よりシンプルなAPI:コードが少なくなり、読みやすくなり、メンテナンスが容易になります 5.アドオン購入なし: HTML、マージ、セキュリティがすべて含まれています 移行前の準備 前提条件 あなたの環境がこれらの要件を満たしていることを確認してください: .NET Framework 4.6.2+または.NET Core 3.1 / .NET 5-9 Visual Studio 2019+またはC#拡張機能付きVS Code NuGetパッケージマネージャへのアクセス IronPDFライセンスキー (ironpdf.com にて無料トライアル可能) DynamicPDFの使用状況を監査する ソリューションディレクトリで以下のコマンドを実行して、すべてのDynamicPDF参照を確認してください: # Find allダイナミックPDFreferences grep -r "ceTe.DynamicPDF\|DynamicPDF" --include="*.cs" --include="*.csproj" . # Check NuGet packages dotnet list package | grep -i dynamic # Find allダイナミックPDFreferences grep -r "ceTe.DynamicPDF\|DynamicPDF" --include="*.cs" --include="*.csproj" . # Check NuGet packages dotnet list package | grep -i dynamic SHELL 一般的なパッケージ ceTe.DynamicPDF.CoreSuite.NET。 ceTe.DynamicPDF.Generator.NET。 ceTe.DynamicPDF.Merger.NET。 ceTe.DynamicPDF.HtmlConverter.NET。 パラダイムシフトを理解する DynamicPDFからIronPDFへの移行で最も大きな変更は、ドキュメント作成の基本的なアプローチです。 DynamicPDFは、ページ上の特定のX,Y座標に要素を配置する座標ベースのポジショニングを使用します。 IronPDFはHTML/CSSレンダリングを使用し、ウェブテクノロジーでデザインします。 このパラダイムシフトは、Label、TextArea、Table2要素を同等のHTML要素に変換することを意味します。 ステップごとの移行プロセス ステップ 1: NuGet パッケージを更新する すべてのDynamicPDFパッケージを削除し、IronPDFをインストールしてください: # RemoveダイナミックPDFpackages dotnet remove package ceTe.DynamicPDF.CoreSuite.NET dotnet remove package ceTe.DynamicPDF.Generator.NET dotnet remove package ceTe.DynamicPDF.Merger.NET dotnet remove package ceTe.DynamicPDF.HtmlConverter.NET # Install IronPDF dotnet add package IronPdf # RemoveダイナミックPDFpackages dotnet remove package ceTe.DynamicPDF.CoreSuite.NET dotnet remove package ceTe.DynamicPDF.Generator.NET dotnet remove package ceTe.DynamicPDF.Merger.NET dotnet remove package ceTe.DynamicPDF.HtmlConverter.NET # Install IronPDF dotnet add package IronPdf SHELL ステップ 2: 名前空間参照の更新 DynamicPDF名前空間をIronPDFに置き換えてください: // Remove these using ceTe.DynamicPDF; using ceTe.DynamicPDF.PageElements; using ceTe.DynamicPDF.Merger; using ceTe.DynamicPDF.Conversion; // Add this using IronPdf; // Remove these using ceTe.DynamicPDF; using ceTe.DynamicPDF.PageElements; using ceTe.DynamicPDF.Merger; using ceTe.DynamicPDF.Conversion; // Add this using IronPdf; $vbLabelText $csharpLabel ステップ 3: ライセンスの設定 // Add at application startup (Program.cs or Startup.cs) IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Add at application startup (Program.cs or Startup.cs) IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; $vbLabelText $csharpLabel 完全な API 移行のリファレンス コア クラス マッピング DynamicPDFクラス IronPDF 同等物 ノート ドキュメント ChromePdfRenderer 新しいPDFを作成する場合 ドキュメント PdfDocument 既存のPDFを操作する場合 ページ HTML <div>(改ページ付き または複数のレンダリング MergeDocument PdfDocument.Merge()を使用してください。 静的マージ方式 HtmlConverter ChromePdfRenderer 組み込み、アドオンなし ページ要素と HTML のマッピング DynamicPDF ページ要素 IronPDF/HTMLに相当するもの ラベル <p>、<span>、<div>。 テキストエリア <div>, <p> with CSS イメージ <img>タグ 表2 HTML <テーブル><code> ページ番号ラベル {page}</code> /{total-pages}`プレースホルダ 主な API マッピング ダイナミックPDF IronPDF ノート ドキュメント + ページ|ChromePdfRenderer` HTMLベースの生成 ラベル</code>, <code>テキストエリア HTML <p>、<div>。 CSSによるスタイル 表2 HTML <テーブル><code> 完全なCSSスタイリング MergeDocument PdfDocument.Merge()を使用してください。 静的メソッド HtmlConverter ChromePdfRenderer 組み込み、アドオンなし document.Draw() pdf.SaveAs() / pdf.BinaryData<//code PageNumberingLabel</code> <code>%%CP%% {ページ}プレースホルダ 異なる構文 コード移行の例 HTMLからPDFへの変換 HTMLからPDFへの変換は、DynamicPDFのHtmlConverterアドオンとIronPDFの内蔵Chromiumレンダリングの必要性を示しています。 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 IronPdfのChromePdfRendererはCSS3を完全にサポートしたChromiumベースのレンダリングを提供します。 その他のオプションについては、HTML to PDF documentationを参照してください。 複数のPDFをマージする PDFのマージでは、DynamicPDFのMergeDocumentクラス(Merger製品ライセンスが必要)とIronPDFの組み込み静的Mergeメソッドの違いを示しています。 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 IronPDFの静的なMergeメソッドは複数のPdfDocumentオブジェクトを直接受け入れます。 その他のオプションについては、 PDF 結合のドキュメントを参照してください。 PDFにテキストを追加する テキストの配置はDynamicPDFの座標ベースのLabel要素からIronPDFのHTMLベースのTextStamperへのパラダイムシフトを示しています。 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 IronPDFのTextStamperは座標ベースの配置ではなく、アライメントベースの配置を提供し、異なるページサイズにレイアウトをより適応させます。 その他のオプションについては、watermark and stamping documentationを参照してください。 完全なドキュメント生成例 この包括的な例では、複数の要素を持つDynamicPDFドキュメントをIronPDFのHTMLアプローチに変換しています。 DynamicPDFの実装:。 using ceTe.DynamicPDF; using ceTe.DynamicPDF.PageElements; using ceTe.DynamicPDF.Merger; // Generation (requires Generator license) Document document = new Document(); Page page = new Page(PageSize.A4); Label title = new Label("Invoice Report", 0, 0, 595, 30, Font.HelveticaBold, 18); title.Align = TextAlign.Center; page.Elements.Add(title); Table2 table = new Table2(40, 60, 515, 500); // ... complex table setup with columns, rows, cells... page.Elements.Add(table); document.Pages.Add(page); document.Draw("invoice.pdf"); // Merging (requires Merger license) MergeDocument mergeDoc = new MergeDocument("cover.pdf"); mergeDoc.Append("invoice.pdf"); mergeDoc.Draw("final.pdf"); using ceTe.DynamicPDF; using ceTe.DynamicPDF.PageElements; using ceTe.DynamicPDF.Merger; // Generation (requires Generator license) Document document = new Document(); Page page = new Page(PageSize.A4); Label title = new Label("Invoice Report", 0, 0, 595, 30, Font.HelveticaBold, 18); title.Align = TextAlign.Center; page.Elements.Add(title); Table2 table = new Table2(40, 60, 515, 500); // ... complex table setup with columns, rows, cells... page.Elements.Add(table); document.Pages.Add(page); document.Draw("invoice.pdf"); // Merging (requires Merger license) MergeDocument mergeDoc = new MergeDocument("cover.pdf"); mergeDoc.Append("invoice.pdf"); mergeDoc.Draw("final.pdf"); $vbLabelText $csharpLabel IronPDFの実装:。 using IronPdf; var renderer = new ChromePdfRenderer(); // All features in one library var html = @" <html> <head> <style> body { font-family: Helvetica, sans-serif; padding: 40px; } h1 { text-align: center; font-size: 18pt; } table { width: 100%; border-collapse: collapse; margin-top: 20px; } th, td { border: 1px solid #ccc; padding: 8px; } </style> </head> <body> <h1>Invoice Report</h1> <table> <tr><th>Product</th><th>Qty</th><th>Price</th></tr> <tr><td>Widget</td><td>10</td><td>$99.99</td></tr> </table> </body> </html>"; var invoice = renderer.RenderHtmlAsPdf(html); // Merging included - no separate license var cover = PdfDocument.FromFile("cover.pdf"); var final = PdfDocument.Merge(cover, invoice); final.SaveAs("final.pdf"); using IronPdf; var renderer = new ChromePdfRenderer(); // All features in one library var html = @" <html> <head> <style> body { font-family: Helvetica, sans-serif; padding: 40px; } h1 { text-align: center; font-size: 18pt; } table { width: 100%; border-collapse: collapse; margin-top: 20px; } th, td { border: 1px solid #ccc; padding: 8px; } </style> </head> <body> <h1>Invoice Report</h1> <table> <tr><th>Product</th><th>Qty</th><th>Price</th></tr> <tr><td>Widget</td><td>10</td><td>$99.99</td></tr> </table> </body> </html>"; var invoice = renderer.RenderHtmlAsPdf(html); // Merging included - no separate license var cover = PdfDocument.FromFile("cover.pdf"); var final = PdfDocument.Merge(cover, invoice); final.SaveAs("final.pdf"); $vbLabelText $csharpLabel 重要な移行に関する注意事項 座標ベースから HTML/CSS ポジショニングへ 根本的なパラダイムシフトとして、X,Y座標のポジショニングをCSSベースのレイアウトに変換する必要があります: //ダイナミックPDF- coordinate-based var label = new Label("Hello World", 100, 200, 300, 50); //IronPDF- CSS positioning (if absolute positioning needed) var html = "<div style='position:absolute; left:100px; top:200px; width:300px;'>Hello World</div>"; //IronPDF- preferred approach (flow-based) var html = "<div style='margin-left:100px; margin-top:200px;'>Hello World</div>"; //ダイナミックPDF- coordinate-based var label = new Label("Hello World", 100, 200, 300, 50); //IronPDF- CSS positioning (if absolute positioning needed) var html = "<div style='position:absolute; left:100px; top:200px; width:300px;'>Hello World</div>"; //IronPDF- preferred approach (flow-based) var html = "<div style='margin-left:100px; margin-top:200px;'>Hello World</div>"; $vbLabelText $csharpLabel ページ番号の構文 DynamicPDFとIronPDFはページ番号に異なるプレースホルダー構文を使用します: //ダイナミックPDFplaceholders "Page %%CP%% of %%TP%%" //IronPDFplaceholders "Page {page} of {total-pages}" //ダイナミックPDFplaceholders "Page %%CP%% of %%TP%%" //IronPDFplaceholders "Page {page} of {total-pages}" $vbLabelText $csharpLabel ヘッダーとフッター DynamicPDF Template要素をIronPDF HtmlHeaderFooterに変換します: //IronPDFheader/footer renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center;'>Page {page} of {total-pages}</div>", MaxHeight = 25 }; //IronPDFheader/footer renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center;'>Page {page} of {total-pages}</div>", MaxHeight = 25 }; $vbLabelText $csharpLabel その他のヘッダー/フッターオプションについては、headers and footers documentationを参照してください。 セキュリティ設定 //IronPDFsecurity pdf.SecuritySettings.OwnerPassword = "ownerPassword"; pdf.SecuritySettings.UserPassword = "userPassword"; //IronPDFsecurity pdf.SecuritySettings.OwnerPassword = "ownerPassword"; pdf.SecuritySettings.UserPassword = "userPassword"; $vbLabelText $csharpLabel 包括的なセキュリティ オプションについては、暗号化のドキュメントを参照してください。 移行後のチェックリスト コードの移行が完了したら、以下を確認してください: 生成されたPDFの視覚的な比較 テキストの位置とレイアウトを確認する テストテーブルのレンダリングとオーバーフロー すべてのページのヘッダー/フッターを確認する フォーム入力機能をテストする セキュリティ/暗号化を確認する パフォーマンスベンチマーク 未使用のDynamicPDFライセンスファイルを削除する ドキュメントの更新 PDFインフラストラクチャの将来性を確保する .NET 10が目前に迫り、C# 14が新しい言語機能を導入する中、最新の.NETパターンを取り入れたPDFライブラリを選択することで、長期的な互換性を確保できます。IronPDFは.NET 6/7/8/9+をネイティブサポートしているため、プロジェクトが2025年や2026年に拡張されても、複数の製品ライセンスを管理したり、断片化されたAPIをナビゲートするような複雑な作業をすることなく、明確に前進することができます。 その他のリソース IronPDFドキュメント. HTMLからPDFへのチュートリアル。 APIリファレンス. NuGetパッケージ。 ライセンスオプション。 DynamicPDFからIronPDFに移行することで、最新のChromiumベースのレンダリングと完全なCSS3サポートを提供しながら、複数の製品ライセンスを管理する複雑さを解消します。 座標ベースの位置決めからHTML/CSS設計への移行は、通常、慣れ親しんだウェブ技術を活用した、より保守性の高いコードにつながります。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 2026年2月1日 C#でZetPDFからIronPDFに移行する方法 この完全なC#ガイドでZetPDFからIronPDFへの移行をマスターしてください。座標ベースのライブラリから最新のHTML-to-PDFソリューションに切り替えます。HTML変換、PDFのマージ、PDFSharpの依存関係の削除のコード例が含まれています。 詳しく読む 公開日 2026年2月1日 C#でScryber.CoreからIronPDFに移行する方法 この完全なC#ガイドでScryber.CoreからIronPDFへの移行をマスターしてください。カスタムXML/HTMLパースから最新のChromiumレンダラーに切り替えます。HTML変換、URLレンダリング、独自のバインディングを置き換えるコード例を含みます。 詳しく読む 公開日 2026年2月1日 C#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む C#でEasy PDF SDKからIronPDFへ移行する方法C#でDinkToPdfからIronPdfに移...
公開日 2026年2月1日 C#でZetPDFからIronPDFに移行する方法 この完全なC#ガイドでZetPDFからIronPDFへの移行をマスターしてください。座標ベースのライブラリから最新のHTML-to-PDFソリューションに切り替えます。HTML変換、PDFのマージ、PDFSharpの依存関係の削除のコード例が含まれています。 詳しく読む
公開日 2026年2月1日 C#でScryber.CoreからIronPDFに移行する方法 この完全なC#ガイドでScryber.CoreからIronPDFへの移行をマスターしてください。カスタムXML/HTMLパースから最新のChromiumレンダラーに切り替えます。HTML変換、URLレンダリング、独自のバインディングを置き換えるコード例を含みます。 詳しく読む
公開日 2026年2月1日 C#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む