移行ガイド C#でZetPDFからIronPDFに移行する方法 カーティス・チャウ 公開日:2026年2月1日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る ZetPDFは、広く使用されているオープンソースのPDFSharpライブラリの基礎の上に構築されたC#アプリケーション用の商用ライセンスのPDFライブラリです。 ZetPDFは商用サポートと基本的なPDF操作機能を提供しますが、PDFSharpの基盤から重大な制限を受け継いでいます。 最も注目すべき点は、ライブラリが座標ベースのグラフィックス・プログラミングに依存しており、最新の代替ツールと比較してHTMLからPDFへの変換機能が限られていることです。 このガイドでは、ZetPDFからIronPdfへの完全な移行パスを、移行を検討しているプロの.NET開発者のために、ステップバイステップの手順、コード比較、実用的な例とともに提供します。 なぜZetPDFから移行するのか ZetPDFは、PDFSharpのフォークとして、最新のドキュメント生成ワークフローでの有効性を制限する同じアーキテクチャ上の制約を継承しています。 開発チームが移行を検討する主な理由は次のとおりです: 座標ベースの API:ZetPDFでは、開発者はすべての要素を正確な座標で配置する必要があります。 各要素を手作業で複雑に配置するため、要件が変わるたびにメンテナンスが必要になります。 制限された CSS サポート:スタイル システムがないため、すべての要素のフォントと色を手動で管理する必要があります。 JavaScript レンダリングなし: PDF 生成中に動的な Web コンテンツをレンダリングしたり、JavaScript を実行したりできません。 限定された独自の機能: PDFSharp を無料で直接使用する場合と比較して、ZetPDF には商用ライセンスを必要とする説得力のある理由がほとんどありません。 手動ページ区切り:自動ページ区切りに頼るのではなく、ページオーバーフローを手動で計算して管理する必要があります。 テキスト測定が必要:テキストの折り返しを手動で計算すると、追加の開発オーバーヘッドが発生します。 基本的な問題 ZetPDFとPDFSharpは、すべての要素を正確な座標で配置することを強制します: // ZetPDF: マニュアル positioning nightmare graphics.DrawString("Name:", font, brush, new XPoint(50, 100)); graphics.DrawString("John Doe", font, brush, new XPoint(100, 100)); graphics.DrawString("Address:", font, brush, new XPoint(50, 120)); graphics.DrawString("123 Main St", font, brush, new XPoint(100, 120)); // ... hundreds of lines for a simple form // ZetPDF: マニュアル positioning nightmare graphics.DrawString("Name:", font, brush, new XPoint(50, 100)); graphics.DrawString("John Doe", font, brush, new XPoint(100, 100)); graphics.DrawString("Address:", font, brush, new XPoint(50, 120)); graphics.DrawString("123 Main St", font, brush, new XPoint(100, 120)); // ... hundreds of lines for a simple form $vbLabelText $csharpLabel IronPdfはHTML/CSSを使用し、レイアウトエンジンがすべてを処理します: // IronPDF: Simple HTML var html = @" <p><strong>Name:</strong> John Doe</p> <p><strong>Address:</strong> 123 Main St</p>"; var pdf = renderer.RenderHtmlAsPdf(html); // IronPDF: Simple HTML var html = @" <p><strong>Name:</strong> John Doe</p> <p><strong>Address:</strong> 123 Main St</p>"; var pdf = renderer.RenderHtmlAsPdf(html); $vbLabelText $csharpLabel IronPDFとZetPDFの比較:機能の比較 アーキテクチャの違いを理解することは、技術的な意思決定者が移行への投資を評価するのに役立ちます: フィーチャー ZetPDF IronPDF PDFSharpに基づいています。 はい なし HTMLからPDFへの変換。 制限的 はい(フルChromium) 商用ライセンス はい。 はい オープンソース財団 PDFSharp(MITライセンス) クロムベース CSSサポート なし 完全なCSS3 JavaScript(ジャバスクリプト なし フルES2024 自動レイアウト。 なし はい 自動改ページ なし はい テーブル マニュアル図面 HTML <テーブル><code> ヘッダー/フッター マニュアル HTML/CSS ウォーターマーク。 マニュアルコード 内蔵 PDFをマージする。 制限的 はい PDFを分割する。 制限的 はい デジタル署名。 なし はい PDF/A なし はい シンプルさと使いやすさ。 適度 高い クイックスタートZetPDFからIronPDFへの移行 これらの基本的なステップを踏めば、すぐにでも移行を開始できます。 ステップ 1: NuGet パッケージを置き換える ZetPDFを削除してください: # Remove ZetPDF dotnet remove package ZetPDF # Remove ZetPDF dotnet remove package ZetPDF SHELL IronPDFをインストールします: # Install IronPDF dotnet add package IronPdf # Install IronPDF dotnet add package IronPdf SHELL ステップ 2: 名前空間の更新 ZetPDF名前空間をIronPdf名前空間に置き換えてください: // Before (ZetPDF) using ZetPdf; using ZetPdf.Drawing; using ZetPdf.Fonts; // After (IronPDF) using IronPdf; // Before (ZetPDF) using ZetPdf; using ZetPdf.Drawing; using ZetPdf.Fonts; // After (IronPDF) using IronPdf; $vbLabelText $csharpLabel ステップ 3: ライセンスの初期化 アプリケーション起動時のライセンス初期化を追加します: IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; $vbLabelText $csharpLabel コード移行の例 HTML を PDF に変換する HTMLからPDFへの操作は、これらの.NET PDFライブラリ間のAPIの違いを示しています。 ZetPDFのアプローチ: // NuGet: Install-Package ZetPDF using ZetPDF; using System; class Program { static void Main() { var converter = new HtmlToPdfConverter(); var htmlContent = "<html><body><h1>Hello World</h1></body></html>"; converter.ConvertHtmlToPdf(htmlContent, "output.pdf"); Console.WriteLine("PDF created successfully"); } } // NuGet: Install-Package ZetPDF using ZetPDF; using System; class Program { static void Main() { var converter = new HtmlToPdfConverter(); var htmlContent = "<html><body><h1>Hello World</h1></body></html>"; converter.ConvertHtmlToPdf(htmlContent, "output.pdf"); Console.WriteLine("PDF created successfully"); } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var htmlContent = "<html><body><h1>Hello World</h1></body></html>"; var pdf = renderer.RenderHtmlAsPdf(htmlContent); pdf.SaveAs("output.pdf"); Console.WriteLine("PDF created successfully"); } } // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var htmlContent = "<html><body><h1>Hello World</h1></body></html>"; var pdf = renderer.RenderHtmlAsPdf(htmlContent); pdf.SaveAs("output.pdf"); Console.WriteLine("PDF created successfully"); } } $vbLabelText $csharpLabel ZetPDFは、ファイルパスに直接書き込むConvertHtmlToPdf()を持つHtmlToPdfConverterを使用します。 IronPDFはPdfDocumentオブジェクトを返すRenderHtmlAsPdf()を持つChromePdfRendererを提供します。 高度なHTMLからPDFへのシナリオについては、HTMLからPDFへの変換ガイドをご覧ください。 URLをPDFに変換する URLからPDFへの変換は、パターンの違いを明確に示します。 ZetPDFのアプローチ: // NuGet: Install-Package ZetPDF using ZetPDF; using System; class Program { static void Main() { var converter = new HtmlToPdfConverter(); var url = "https://www.example.com"; converter.ConvertUrlToPdf(url, "webpage.pdf"); Console.WriteLine("PDF from URL created successfully"); } } // NuGet: Install-Package ZetPDF using ZetPDF; using System; class Program { static void Main() { var converter = new HtmlToPdfConverter(); var url = "https://www.example.com"; converter.ConvertUrlToPdf(url, "webpage.pdf"); Console.WriteLine("PDF from URL created successfully"); } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var url = "https://www.example.com"; var pdf = renderer.RenderUrlAsPdf(url); pdf.SaveAs("webpage.pdf"); Console.WriteLine("PDF from URL created successfully"); } } // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var url = "https://www.example.com"; var pdf = renderer.RenderUrlAsPdf(url); pdf.SaveAs("webpage.pdf"); Console.WriteLine("PDF from URL created successfully"); } } $vbLabelText $csharpLabel ZetPDFは、ConvertUrlToPdf()と同じHtmlToPdfConverterクラスを使用しています。 IronPDFはChromePdfRenderer上でRenderUrlAsPdf()を提供し、JavaScriptの実行とモダンなCSSを含む正確なウェブページキャプチャのために完全なChromiumレンダリングエンジンを活用しています。 認証とカスタムヘッダーオプションについては、URL to PDF documentationを参照してください。 複数のPDFをマージする PDFをマージすると、ドキュメントの処理方法にAPIによる大きな違いがあることがわかります。 ZetPDFのアプローチ: // NuGet: Install-Package ZetPDF using ZetPDF; using System; using System.Collections.Generic; class Program { static void Main() { var merger = new PdfMerger(); var files = new List<string> { "document1.pdf", "document2.pdf" }; merger.MergeFiles(files, "merged.pdf"); Console.WriteLine("PDFs merged successfully"); } } // NuGet: Install-Package ZetPDF using ZetPDF; using System; using System.Collections.Generic; class Program { static void Main() { var merger = new PdfMerger(); var files = new List<string> { "document1.pdf", "document2.pdf" }; merger.MergeFiles(files, "merged.pdf"); Console.WriteLine("PDFs merged successfully"); } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; using System; using System.Collections.Generic; class Program { static void Main() { var pdfs = new List<PdfDocument> { PdfDocument.FromFile("document1.pdf"), PdfDocument.FromFile("document2.pdf") }; var merged = PdfDocument.Merge(pdfs); merged.SaveAs("merged.pdf"); Console.WriteLine("PDFs merged successfully"); } } // NuGet: Install-Package IronPdf using IronPdf; using System; using System.Collections.Generic; class Program { static void Main() { var pdfs = new List<PdfDocument> { PdfDocument.FromFile("document1.pdf"), PdfDocument.FromFile("document2.pdf") }; var merged = PdfDocument.Merge(pdfs); merged.SaveAs("merged.pdf"); Console.WriteLine("PDFs merged successfully"); } } $vbLabelText $csharpLabel ZetPDFは、MergeFiles()でファイルパスを操作する専用のPdfMergerクラスを使用します。 IronPDFはPdfDocument.FromFile()を使ってPdfDocumentオブジェクトとしてドキュメントをロードし、静的なPdfDocument.Merge()メソッドでそれらをマージします。 このオブジェクト指向のアプローチにより、マージされたドキュメントを保存する前に追加操作を行うことができます。 その他のマージ オプションについては、PDF マージ ドキュメントを参照してください。 座標ベースの描画 vs HTML 座標ベースのグラフィックを使用する既存のZetPDFコードを持つ開発者のための移行パスには、描画コマンドをHTML/CSSに変換することが含まれます。 ZetPDFの座標ベースのアプローチ: using ZetPdf; using ZetPdf.Drawing; var document = new PdfDocument(); var page = document.AddPage(); page.Width = XUnit.FromMillimeter(210); page.Height = XUnit.FromMillimeter(297); var graphics = XGraphics.FromPdfPage(page); var titleFont = new XFont("Arial", 24, XFontStyle.Bold); var bodyFont = new XFont("Arial", 12); graphics.DrawString("Company Report", titleFont, XBrushes.Navy, new XPoint(50, 50)); graphics.DrawString("This is the introduction paragraph.", bodyFont, XBrushes.Black, new XPoint(50, 80)); graphics.DrawString("Generated: " + DateTime.Now.ToString(), bodyFont, XBrushes.Gray, new XPoint(50, 100)); document.Save("report.pdf"); using ZetPdf; using ZetPdf.Drawing; var document = new PdfDocument(); var page = document.AddPage(); page.Width = XUnit.FromMillimeter(210); page.Height = XUnit.FromMillimeter(297); var graphics = XGraphics.FromPdfPage(page); var titleFont = new XFont("Arial", 24, XFontStyle.Bold); var bodyFont = new XFont("Arial", 12); graphics.DrawString("Company Report", titleFont, XBrushes.Navy, new XPoint(50, 50)); graphics.DrawString("This is the introduction paragraph.", bodyFont, XBrushes.Black, new XPoint(50, 80)); graphics.DrawString("Generated: " + DateTime.Now.ToString(), bodyFont, XBrushes.Gray, new XPoint(50, 100)); document.Save("report.pdf"); $vbLabelText $csharpLabel IronPDF HTMLアプローチ:。 using IronPdf; var html = $@" <html> <head> <style> body {{ font-family: Arial, sans-serif; padding: 50px; }} h1 {{ color: navy; }} .date {{ color: gray; }} </style> </head> <body> <h1>Company Report</h1> <p>This is the introduction paragraph.</p> <p class='date'>Generated: {DateTime.Now}</p> </body> </html>"; var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperSize = PdfPaperSize.A4; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("report.pdf"); using IronPdf; var html = $@" <html> <head> <style> body {{ font-family: Arial, sans-serif; padding: 50px; }} h1 {{ color: navy; }} .date {{ color: gray; }} </style> </head> <body> <h1>Company Report</h1> <p>This is the introduction paragraph.</p> <p class='date'>Generated: {DateTime.Now}</p> </body> </html>"; var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperSize = PdfPaperSize.A4; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("report.pdf"); $vbLabelText $csharpLabel ZetPDFのアプローチでは、フォントオブジェクトを作成し、正確なピクセル位置を計算し、グラフィックのコンテキストを手動で管理する必要があります。 IronPdfのアプローチでは、ウェブ開発者がすでに知っている標準的なHTMLとCSSを使用しています。フォント、色、レイアウトは使い慣れたCSSプロパティで処理されます。 ZetPDFAPIからIronPDFへのマッピングリファレンス このマッピングは、APIと同等のものを直接示すことで、移行を加速します: ZetPDF IronPDF ノート new PdfDocument(). new ChromePdfRenderer(). レンダラーの作成 document.AddPage()。 自動翻訳 HTMLから作成されたページ XGraphics.FromPdfPage(page). 該当なし 代わりにHTML/CSSを使用してください graphics.DrawString() HTMLテキスト要素 <p>、<h1>など。 graphics.DrawImage() <img>タグ HTML画像 graphics.DrawLine() CSSボーダー または<hr>。 graphics.DrawRectangle()</code> CSS border</code> + <code>div HTMLボックス new XFont(). CSS font-family 対応ウェブフォント XBrushes.Black CSS カラー フルカラー対応 document.Save() pdf.SaveAs() ファイルに保存 PdfReader.Open() PdfDocument.FromFile()を使用してください。 既存のPDFを読み込む HtmlToPdfConverter ChromePdfRenderer HTML変換 ConvertHtmlToPdf()を使用してください。 RenderHtmlAsPdf() HTML文字列からPDFへ ConvertUrlToPdf()を使用してください。 RenderUrlAsPdf()を使用してください。 URLからPDFへ PdfMerger PdfDocument.Merge()を使用してください。 PDFの結合 一般的な移行の問題と解決策 課題1: 座標ベースのレイアウト ZetPDF:すべてにおいて、正確なX,Y座標と手動での位置決めが必要です。 ソリューション: HTML/CSSフローレイアウトを使用する。 絶対位置指定が必要な場合は、CSSを使用してください: .positioned-element { position: absolute; top: 100px; left: 50px; } 課題2:フォントオブジェクト管理 ZetPDF:フォントのバリエーションごとにXFontオブジェクトを作成します。 ソリューション: CSS font-familyを使用してください: <style> body { font-family: Arial, sans-serif; } h1 { font-family: 'Times New Roman', serif; font-size: 24px; font-weight: bold; } </style> <style> body { font-family: Arial, sans-serif; } h1 { font-family: 'Times New Roman', serif; font-size: 24px; font-weight: bold; } </style> HTML 課題3: カラーハンドリング ZetPDF:XBrushesとカラーオブジェクトを使用してください。 解決策:標準的なCSSの色を使用する: .header { color: navy; background-color: #f5f5f5; } .warning { color: rgb(255, 0, 0); } 課題4:マニュアルの改ページ ZetPDF:Y位置を追跡し、コンテンツがオーバーフローしたときに手動で新しいページを作成します。 ソリューション: IronPDFは自動改ページを処理します。 明示的な制御にはCSSを使用してください: .section { page-break-after: always; } .keep-together { page-break-inside: avoid; } 課題5:テーブルの作成 ZetPDF:長方形、線、テキストの位置決めを手動で描画する必要があります。 ソリューション: CSSスタイリングで標準的なHTMLテーブルを使用してください: <table style="border-collapse: collapse; width: 100%;"> <tr> <th style="border: 1px solid black; padding: 8px;">Header</th> </tr> <tr> <td style="border: 1px solid black; padding: 8px;">Data</td> </tr> </table> <table style="border-collapse: collapse; width: 100%;"> <tr> <th style="border: 1px solid black; padding: 8px;">Header</th> </tr> <tr> <td style="border: 1px solid black; padding: 8px;">Data</td> </tr> </table> HTML ZetPDF移行チェックリスト マイグレーション前のタスク コードベースを監査して、すべてのZetPDFの使用方法を確認してください: grep -r "using ZetPDF" --include="*.cs" . grep -r "HtmlToPdfConverter\|PdfMerger\|XGraphics" --include="*.cs" . grep -r "using ZetPDF" --include="*.cs" . grep -r "HtmlToPdfConverter\|PdfMerger\|XGraphics" --include="*.cs" . SHELL HTMLへの変換が必要な座標ベースの描画コードを文書化すること。 フォントと色の使用パターンに注意してください。 レイアウト構造をHTMLに対応させる。 コード更新タスク 1.ZetPDF NuGetパッケージの削除 2.IronPdf NuGetパッケージをインストールする 3.名前空間のインポートをZetPDFからIronPdfに更新してください。 4.HtmlToPdfConverterをChromePdfRendererに置き換えてください。 5.ConvertHtmlToPdf()コールをRenderHtmlAsPdf() + SaveAs()に変換する。 6.ConvertUrlToPdf()コールをRenderUrlAsPdf() + SaveAs()に変換する。 7.PdfMerger.MergeFiles() をPdfDocument.Merge()を使用してください。に置き換えてください。 8.DrawString()コールをHTMLテキスト要素に変換する 9.XFontを CSS font-familyに変換してください。 10.XBrushesをCSSカラーに置き換える 11.起動時にIronPDFライセンスの初期化を追加する 移行後のテスト 移行後、これらの点を検証してください: ビジュアル出力を比較し、外観が一致または改善されていることを確認します。 CSSスタイリングでフォントが期待通りに表示されることを確認する。 自動ページネーションで改ページが正しく行われることをテストする 画像が正しく配置され、表示されていることを確認する PDF のマージ操作が正しい出力を生成することをテストする すべての既存機能が新しい実装で動作することを確認する。 IronPDFに移行する主な利点 ZetPDFからIronPDFに移行することで、いくつかの重要な利点が得られます: 最新の Chromium レンダリング エンジン:IronPDFは HTML から PDF への変換に Chromium を使用し、完全な CSS3 および ES2024 JavaScript サポートを保証します。 最新のフレームワークとレスポンシブデザインを正しくレンダリングすること。 HTML ベースのコンテンツ作成: Web 開発者は既存の HTML および CSS スキルを活用できます。 座標ベースの描画APIを学んだり、フォント・オブジェクトを管理したりする必要はありません。 自動レイアウトとページ区切り:テキストの折り返し、ページ区切り、フロー レイアウトは自動的に行われます。 要素の位置を手動で計算する必要はありません。 簡素化された API:一般的な操作に対する単一メソッド呼び出し。 PdfDocument.Merge()は、複雑なファイルパスの処理パターンを置き換えます。 積極的な開発: .NET 10 と C# 14 の採用が 2026 年まで増加するにつれて、IronPDF の定期的な更新により、現在のおよび将来の .NET バージョンとの互換性が確保されます。 包括的な機能セット:透かし、デジタル署名、PDF/A 準拠、ZetPDF にはない高度な PDF 操作機能が組み込まれています。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 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レンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む 公開日 2026年2月1日 C#でPdfPigからIronPDFに移行する方法 この完全なC#ガイドでPdfPigからIronPDFへの移行をマスターしてください。読むだけのライブラリから包括的なPDFソリューションに切り替えます。テキスト抽出、HTML変換、メタデータアクセスのコード例を含みます。 詳しく読む C#でXFINIUM.PDFからIronPdfへ移...
公開日 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レンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む
公開日 2026年2月1日 C#でPdfPigからIronPDFに移行する方法 この完全なC#ガイドでPdfPigからIronPDFへの移行をマスターしてください。読むだけのライブラリから包括的なPDFソリューションに切り替えます。テキスト抽出、HTML変換、メタデータアクセスのコード例を含みます。 詳しく読む