フッターコンテンツにスキップ
移行ガイド

C#でDynamicPDFからIronPDFに移行する方法

DynamicPDFからIronPDFへの移行:完全なC#移行ガイド

DynamicPDFは、PDFの生成、結合、操作にわたる包括的な機能セットで知られる、長い歴史を持つ.NET PDFライブラリです。 しかし、DynamicPDFの製品モデルは細分化されており、Generator、Merger、HTML Converter、その他のコンポーネントに個別のライセンスが必要なため、開発チームにとって複雑さとコスト面での課題があります。 この包括的なガイドは、DynamicPDFからIronPDFへのステップバイステップの移行経路を提供します-最新のChromiumベースのレンダリングで、生成、操作、HTML変換を1つのパッケージにまとめたオールインワン.NET PDFライブラリです。

なぜDynamicPDFからIronPDFに移行するのですか? DynamicPDFの製品の断片化は、移行の主な原動力となっています。 ライセンスモデルを理解することは、現在の実装の真のコストを評価するために不可欠です。 ### 製品の断片化の問題 DynamicPDFは、別々のライセンスで別々の製品として販売されています: 1.**DynamicPDFジェネレータ**:PDF をゼロから作成 2.**DynamicPDF Merger**:既存の PDF を結合、分割、操作します (別途購入) 3.**DynamicPDFコアスイート**:ジェネレーターとマージャーの組み合わせ 4.**DynamicPDF ReportWriter**:レポート生成 5.**DynamicPDF HTML Converter**: HTMLからPDFへの変換(別アドオン) 6.**DynamicPDFプリントマネージャ**:プログラムで 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エンジンとレガシーレンダリングの比較 3.**ウェブ技術**:座標ベースのポジショニングの代わりに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](https://ironpdf.com/licensing/) にて無料トライアル可能) ### DynamicPDFの使用状況を監査する

ソリューションディレクトリで以下のコマンドを実行して、すべてのDynamicPDF参照を確認してください: ```bash # Find allダイナミックPDFreferences grep -r "ceTe.DynamicPDF\|DynamicPDF" --include="*.cs" --include="*.csproj" . # Check NuGet packages dotnet list package | grep -i dynamic ``` 一般的なパッケージ - `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をインストールしてください: ```bash # 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 ``` ### ステップ 2: 名前空間参照の更新 DynamicPDF名前空間をIronPDFに置き換えてください: ```csharp // Remove these using ceTe.DynamicPDF; using ceTe.DynamicPDF.PageElements; using ceTe.DynamicPDF.Merger; using ceTe.DynamicPDF.Conversion; // Add this using IronPdf; ``` ### ステップ 3: ライセンスの設定 ```csharp // Add at application startup (Program.cs or Startup.cs) IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; ``` ## 完全な API 移行のリファレンス ### コア クラス マッピング |DynamicPDFクラス|IronPDF 同等物|ノート| |-----------------|-------------------|-------| |<コード>ドキュメントChromePdfRendererドキュメントPdfDocumentページ`(改ページ付き|または複数のレンダリング| |<コード>MergeDocumentHtmlConverterChromePdfRendererラベル`、``、`
`。| |<コード>テキストエリア`, `

` with CSS| |<コード>イメージ`タグ| |<コード>表2<テーブル><コード>ページ番号ラベル / {total-pages}`プレースホルダ| ### 主な API マッピング |ダイナミックPDF|IronPDF|ノート| |------------|---------|-------| |<コード>ドキュメント + <コード>ページChromePdfRendererラベル, <コード>テキストエリア`、`

`。|CSSによるスタイル| |<コード>表2<テーブル><コード>MergeDocumentHtmlConverterChromePdfRendererdocument.Draw()pdf.BinaryData %%CP%%`|<コード>{ページ}プレースホルダ|異なる構文| ## コード移行の例 ### HTMLからPDFへの変換 HTMLからPDFへの変換は、DynamicPDFの`HtmlConverter`アドオンとIronPDFの内蔵Chromiumレンダリングの必要性を示しています。 **DynamicPDFの実装:**。 ```csharp // NuGet: Install-Package ceTe.DynamicPDF.CoreSuite.NET using ceTe.DynamicPDF; using ceTe.DynamicPDF.Conversion; class Program { static void Main() { string html = "

Hello World

"; HtmlConverter converter = new HtmlConverter(html); converter.Convert("output.pdf"); } } ``` **IronPDFの実装:**。 ```csharp // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { string html = "

Hello World

"; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } ``` IronPdfの`ChromePdfRenderer`はCSS3を完全にサポートしたChromiumベースのレンダリングを提供します。 その他のオプションについては、[HTML to PDF documentation](https://ironpdf.com/how-to/html-file-to-pdf/)を参照してください。 ### 複数のPDFをマージする

PDFのマージでは、DynamicPDFの`MergeDocument`クラス(Merger製品ライセンスが必要)とIronPDFの組み込み静的`Merge`メソッドの違いを示しています。 **DynamicPDFの実装:**。 ```csharp // 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"); } } ``` **IronPDFの実装:**。 ```csharp // 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"); } } ``` IronPDFの静的な`Merge`メソッドは複数の`PdfDocument`オブジェクトを直接受け入れます。 その他のオプションについては、[PDFマージドキュメント](https://ironpdf.com/how-to/merge-split-pdfs/)を参照してください。 ### PDFにテキストを追加する

テキストの配置はDynamicPDFの座標ベースの`Label`要素からIronPDFのHTMLベースの`TextStamper`へのパラダイムシフトを示しています。 **DynamicPDFの実装:**。 ```csharp // 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"); } } ``` **IronPDFの実装:**。 ```csharp // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Editing; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(""); var textStamper = new TextStamper() { Text = "Hello from IronPDF!", FontSize = 20, VerticalAlignment = VerticalAlignment.Top }; pdf.ApplyStamp(textStamper); pdf.SaveAs("output.pdf"); } } ``` IronPDFの`TextStamper`は座標ベースの配置ではなく、アライメントベースの配置を提供し、異なるページサイズにレイアウトをより適応させます。 その他のオプションについては、[watermark and stamping documentation](https://ironpdf.com/how-to/background-foreground/)を参照してください。 ### 完全なドキュメント生成例 この包括的な例では、複数の要素を持つDynamicPDFドキュメントをIronPDFのHTMLアプローチに変換しています。 **DynamicPDFの実装:**。 ```csharp 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"); ``` **IronPDFの実装:**。 ```csharp using IronPdf; var renderer = new ChromePdfRenderer(); // All features in one library var html = @"

Invoice Report

ProductQtyPrice
Widget10$99.99
"; 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"); ``` ## 重要な移行に関する注意事項 ### 座標ベースから HTML/CSS ポジショニングへ

根本的なパラダイムシフトとして、X,Y座標のポジショニングをCSSベースのレイアウトに変換する必要があります: ```csharp //ダイナミックPDF- coordinate-based var label = new Label("Hello World", 100, 200, 300, 50); //IronPDF- CSS positioning (if absolute positioning needed) var html = "
Hello World
"; //IronPDF- preferred approach (flow-based) var html = "
Hello World
"; ``` ### ページ番号の構文 DynamicPDFとIronPDFはページ番号に異なるプレースホルダー構文を使用します: ```csharp //ダイナミックPDFplaceholders "Page %%CP%% of %%TP%%" //IronPDFplaceholders "Page {page} of {total-pages}" ``` ### ヘッダーとフッター DynamicPDF `Template`要素をIronPDF `HtmlHeaderFooter`に変換します: ```csharp //IronPDFheader/footer renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "
Page {page} of {total-pages}
", MaxHeight = 25 }; ``` その他のヘッダー/フッターオプションについては、[headers and footers documentation](https://ironpdf.com/how-to/headers-and-footers/)を参照してください。 ### セキュリティ設定 ```csharp //IronPDFsecurity pdf.SecuritySettings.OwnerPassword = "ownerPassword"; pdf.SecuritySettings.UserPassword = "userPassword"; ``` 包括的なセキュリティ・オプションについては、[暗号化ドキュメント](https://ironpdf.com/how-to/pdf-encryption-and-decryption/)を参照してください。 ## 移行後のチェックリスト コードの移行が完了したら、以下を確認してください: - [生成されたPDFのビジュアル比較 - [テキストの位置とレイアウトの確認 - [テーブルレンダリングとオーバーフローのテスト - [全ページのヘッダー/フッターの確認 - [フォーム入力機能のテスト - [セキュリティ/暗号化の検証 - [パフォーマンスベンチマーク - [ ] 未使用のDynamicPDFライセンスファイルを削除する - [ドキュメントの更新 ## PDFインフラストラクチャの将来性を確保する

.NET 10が目前に迫り、C# 14が新しい言語機能を導入する中、最新の.NETパターンを取り入れたPDFライブラリを選択することで、長期的な互換性を確保できます。IronPDFは.NET 6/7/8/9+をネイティブサポートしているため、プロジェクトが2025年や2026年に拡張されても、複数の製品ライセンスを管理したり、断片化されたAPIをナビゲートするような複雑な作業をすることなく、明確に前進することができます。 ## その他のリソース - [IronPDFドキュメント](https://ironpdf.com/docs/). - [HTMLからPDFへのチュートリアル](https://ironpdf.com/tutorials/)。 - [APIリファレンス](https://ironpdf.com/object-reference/api/). - [NuGetパッケージ](https://www.nuget.org/packages/IronPdf/)。 - [ライセンスオプション](https://ironpdf.com/licensing/)。 --- DynamicPDFからIronPDFに移行することで、最新のChromiumベースのレンダリングと完全なCSS3サポートを提供しながら、複数の製品ライセンスを管理する複雑さを解消します。 座標ベースの位置決めからHTML/CSS設計への移行は、通常、慣れ親しんだウェブ技術を活用した、より保守性の高いコードにつながります。
カーティス・チャウ
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。