移行ガイド C#でXFINIUM.PDFからIronPdfへ移行する方法 カーティス・チャウ 公開日:2026年2月1日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る XFINIUM.PDFは、C#でプログラム的にPDFを作成・編集するための包括的なツールを提供するクロスプラットフォームのPDFライブラリです。 このライブラリは、GeneratorとViewerの2つのエディションを提供していますが、座標ベースのグラフィックス・プログラミングに依存しているため、ドキュメントを多用するアプリケーションを構築する開発チームにとっては大きな課題となります。 すべての要素をピクセル座標を使って手作業で配置しなければならないため、単純な文書のはずが複雑な描画の練習になってしまいます。 このガイドでは、XFINIUM.PDFからIronPDFへの完全な移行経路を、移行を検討している.NET開発者のために、ステップバイステップの説明、コード比較、実用的な例とともに提供します。 なぜXFINIUM.PDFから移行するのか XFINIUM.PDFは、座標ベースのグラフィックスプログラミングに依存する低レベルのPDFライブラリであり、開発者はページ上のすべての要素を手動で配置することを余儀なくされます。 要件が変わると、このアプローチはメンテナンスの悪夢となります。 開発チームが移行を検討する主な理由は次のとおりです: HTML サポートなし: XFINIUM.PDF は HTML/CSS を PDF に直接変換できません。 低レベルの描画プリミティブを使用したプログラムによるPDF作成に重点を置いており、広範なHTML-to-PDF機能を必要とするプロジェクトでは十分ではないかもしれません。 座標ベースの API:ページ上のすべての要素に対してDrawString("text", font, brush, 50, 100)のようなピクセル座標による手動の配置が必要です。 手動フォント管理:フォント オブジェクトは、 PdfStandardFontやPdfBrushなどのクラスを使用して明示的に作成および管理する必要があります。 CSS スタイルなし:最新の Web スタイルはサポートされていません。 色、フォント、レイアウトは、プログラムのメソッド呼び出しによって手動で処理する必要があります。 JavaScript レンダリングなし:静的コンテンツのみ。 XFINIUM.PDFは、動的なWebコンテンツのレンダリングやJavaScriptの実行はできません。 複雑なテキスト レイアウト:単純な 1 行テキストを超えるものについては、手動によるテキスト測定と折り返しの計算が必要です。 コミュニティ リソースが限られている:主流のソリューションと比較して、例やチュートリアルなどのコミュニティが提供するリソースが不足しているため、新しいユーザーが使い始めるのが難しくなる可能性があります。 核心的な問題: グラフィックス API 対 HTML XFINIUM.PDFは、ドキュメントデザイナーではなく、グラフィックプログラマーのように考えることを強制します: // XFINIUM.PDF: Position every element manually page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50); page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80); page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80); // ... hundreds of lines for a simple document // XFINIUM.PDF: Position every element manually page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50); page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80); page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80); // ... hundreds of lines for a simple document $vbLabelText $csharpLabel IronPDFは使い慣れたHTML/CSSを使用しています: // IronPDF: Declarative HTML var html = @"<h1>Invoice</h1><p><b>Customer:</b> " + customer.Name + "</p>"; var pdf = renderer.RenderHtmlAsPdf(html); // IronPDF: Declarative HTML var html = @"<h1>Invoice</h1><p><b>Customer:</b> " + customer.Name + "</p>"; var pdf = renderer.RenderHtmlAsPdf(html); $vbLabelText $csharpLabel IronPDFとXFINIUM.PDFの比較:機能比較 アーキテクチャの違いを理解することは、技術的な意思決定者が移行への投資を評価するのに役立ちます: フィーチャー XFINIUM.PDF IronPDF HTMLからPDFへ HTMLのサポートは限定的で、プログラムによるPDF作成に重点を置いています。 包括的なサポートによる完全なHTMLからPDFへの変換 コミュニティ&サポート コミュニティが小さく、利用可能なオンラインリソースが少ない 広範なドキュメントとチュートリアルを備えた大規模コミュニティ ライセンス 開発者ベースの商用ライセンス 商用 クロスプラットフォーム・サポート 強力なクロスプラットフォーム機能 クロスプラットフォームにも対応 CSSサポート なし 完全なCSS3 JavaScript(ジャバスクリプト なし フルES2024 フレックスボックス/グリッド なし はい 自動レイアウト。 なし はい 自動改ページ なし はい マニュアルポジショニング 必須 オプション(CSSポジショニング) ラーニングカーブ 高(座標系) 低レベル(HTML/CSS) コードの正確さ 非常に高い 低レベル クイックスタート:XFINIUM.PDFからIronPDFへの移行 これらの基本的なステップを踏めば、すぐにでも移行を開始できます。 ステップ 1: NuGet パッケージを置き換える XFINIUM.PDFを削除してください: # Remove XFINIUM.PDF dotnet remove package Xfinium.Pdf # Remove XFINIUM.PDF dotnet remove package Xfinium.Pdf SHELL IronPDFをインストールします: # Install IronPDF dotnet add package IronPdf # Install IronPDF dotnet add package IronPdf SHELL ステップ 2: 名前空間の更新 XFINIUM.PDF名前空間をIronPdf名前空間に置き換えてください: // Before (XFINIUM.PDF) using Xfinium.Pdf; using Xfinium.Pdf.Graphics; using Xfinium.Pdf.Content; using Xfinium.Pdf.FlowDocument; // After (IronPDF) using IronPdf; // Before (XFINIUM.PDF) using Xfinium.Pdf; using Xfinium.Pdf.Graphics; using Xfinium.Pdf.Content; using Xfinium.Pdf.FlowDocument; // After (IronPDF) using IronPdf; $vbLabelText $csharpLabel ステップ 3: ライセンスの初期化 アプリケーション起動時のライセンス初期化を追加します: IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; $vbLabelText $csharpLabel コード移行の例 HTML を PDF に変換する 最も基本的な操作は、これらの.NET PDFライブラリの複雑さの違いを明らかにします。 XFINIUM.PDFのアプローチ: // NuGet: Install-Package Xfinium.Pdf using Xfinium.Pdf; using Xfinium.Pdf.Actions; using Xfinium.Pdf.FlowDocument; using System.IO; class Program { static void Main() { PdfFixedDocument document = new PdfFixedDocument(); PdfFlowDocument flowDocument = new PdfFlowDocument(); string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"; PdfFlowContent content = new PdfFlowContent(); content.AppendHtml(html); flowDocument.AddContent(content); flowDocument.RenderDocument(document); document.Save("output.pdf"); } } // NuGet: Install-Package Xfinium.Pdf using Xfinium.Pdf; using Xfinium.Pdf.Actions; using Xfinium.Pdf.FlowDocument; using System.IO; class Program { static void Main() { PdfFixedDocument document = new PdfFixedDocument(); PdfFlowDocument flowDocument = new PdfFlowDocument(); string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"; PdfFlowContent content = new PdfFlowContent(); content.AppendHtml(html); flowDocument.AddContent(content); flowDocument.RenderDocument(document); document.Save("output.pdf"); } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } $vbLabelText $csharpLabel XFINIUM.PDFは、PdfFixedDocument、PdfFlowDocument、PdfFlowContentオブジェクトを作成し、AppendHtml()を呼び出し、フロードキュメントにコンテンツを追加し、固定ドキュメントにレンダリングし、最後に保存する必要があります。 IronPDFはこれを3行に単純化します: レンダラーを作成し、HTMLをレンダリングし、保存します。 高度なHTMLからPDFへのシナリオについては、HTMLからPDFへの変換ガイドをご覧ください。 複数のPDFをマージする PDFマージは、APIの複雑さの違いを明確に示します。 XFINIUM.PDFのアプローチ: // NuGet: Install-Package Xfinium.Pdf using Xfinium.Pdf; using System.IO; class Program { static void Main() { PdfFixedDocument output = new PdfFixedDocument(); FileStream file1 = File.OpenRead("document1.pdf"); PdfFixedDocument pdf1 = new PdfFixedDocument(file1); FileStream file2 = File.OpenRead("document2.pdf"); PdfFixedDocument pdf2 = new PdfFixedDocument(file2); for (int i = 0; i < pdf1.Pages.Count; i++) { output.Pages.Add(pdf1.Pages[i]); } for (int i = 0; i < pdf2.Pages.Count; i++) { output.Pages.Add(pdf2.Pages[i]); } output.Save("merged.pdf"); file1.Close(); file2.Close(); } } // NuGet: Install-Package Xfinium.Pdf using Xfinium.Pdf; using System.IO; class Program { static void Main() { PdfFixedDocument output = new PdfFixedDocument(); FileStream file1 = File.OpenRead("document1.pdf"); PdfFixedDocument pdf1 = new PdfFixedDocument(file1); FileStream file2 = File.OpenRead("document2.pdf"); PdfFixedDocument pdf2 = new PdfFixedDocument(file2); for (int i = 0; i < pdf1.Pages.Count; i++) { output.Pages.Add(pdf1.Pages[i]); } for (int i = 0; i < pdf2.Pages.Count; i++) { output.Pages.Add(pdf2.Pages[i]); } output.Save("merged.pdf"); file1.Close(); file2.Close(); } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; using System.Collections.Generic; 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; using System.Collections.Generic; 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 XFINIUM.PDFは、出力文書を作成し、ファイルストリームを開き、各文書を読み込み、手動でページを繰り返し、1つずつ追加し、保存し、ストリームを閉じる必要があります。 IronPDFは単一のPdfDocument.Merge()メソッドを提供し、すべての複雑さを内部で処理します。 その他のマージ オプションについては、PDF マージ ドキュメントを参照してください。 テキストと画像でPDFを作成する 内容が混在する文書は、基本的なパラダイムの違いを示しています。 XFINIUM.PDFのアプローチ: // NuGet: Install-Package Xfinium.Pdf using Xfinium.Pdf; using Xfinium.Pdf.Graphics; using Xfinium.Pdf.Core; using System.IO; class Program { static void Main() { PdfFixedDocument document = new PdfFixedDocument(); PdfPage page = document.Pages.Add(); PdfStandardFont font = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24); PdfBrush brush = new PdfBrush(PdfRgbColor.Black); page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50); FileStream imageStream = File.OpenRead("image.jpg"); PdfJpegImage image = new PdfJpegImage(imageStream); page.Graphics.DrawImage(image, 50, 100, 200, 150); imageStream.Close(); document.Save("output.pdf"); } } // NuGet: Install-Package Xfinium.Pdf using Xfinium.Pdf; using Xfinium.Pdf.Graphics; using Xfinium.Pdf.Core; using System.IO; class Program { static void Main() { PdfFixedDocument document = new PdfFixedDocument(); PdfPage page = document.Pages.Add(); PdfStandardFont font = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24); PdfBrush brush = new PdfBrush(PdfRgbColor.Black); page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50); FileStream imageStream = File.OpenRead("image.jpg"); PdfJpegImage image = new PdfJpegImage(imageStream); page.Graphics.DrawImage(image, 50, 100, 200, 150); imageStream.Close(); document.Save("output.pdf"); } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; using System.IO; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string imageBase64 = Convert.ToBase64String(File.ReadAllBytes("image.jpg")); string html = $@" <html> <body> <h1>Sample PDF Document</h1> <img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' /> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; using System.IO; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string imageBase64 = Convert.ToBase64String(File.ReadAllBytes("image.jpg")); string html = $@" <html> <body> <h1>Sample PDF Document</h1> <img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' /> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } $vbLabelText $csharpLabel XFINIUM.PDFは、文書の作成、ページの追加、フォントとブラシのオブジェクトの作成、特定の座標でのテキストの描画、画像ストリームを開く、PdfJpegImageの作成、寸法を持つ座標での画像の描画、ストリームの終了、保存を必要とします。 IronPDFはbase64画像を埋め込んだ標準的なHTMLを使用しています。 XFINIUM.PDFAPIからIronPDFへのマッピングリファレンス このマッピングは、APIと同等のものを直接示すことで、移行を加速します: XFINIUM.PDF IronPDF ノート PdfFixedDocument ChromePdfRenderer ドキュメントではなく、レンダラーを作成 PdfPage 自動翻訳 HTMLコンテンツから作成されたページ page.Graphics.DrawString()。 HTMLテキスト要素 <p>、<h1>、<span>など。 page.Graphics.DrawImage()。 <img>タグ HTML画像 page.Graphics.DrawLine() CSS borderまたは<hr>を使用してください。 HTML/CSSライン page.Graphics.DrawRectangle()。 <div>上のCSS border。 HTMLボックス PdfStandardFont CSS font-family フォントオブジェクトは不要 PdfRgbColor CSS カラー 標準CSSカラー PdfBrush CSSプロパティ 背景、色など PdfJpegImage <img>タグとbase64 またはファイルパス document.Save(stream)を実行します。 pdf.SaveAs()または pdf.BinaryData。 複数の出力オプション PdfFlowDocument RenderHtmlAsPdf() HTMLフルサポート PdfFlowContent.AppendHtml()を使用してください。 RenderHtmlAsPdf() 直接HTMLレンダリング 一般的な移行の問題と解決策 課題1: 座標ベースのレイアウト XFINIUM.PDF:すべて正確なX,Y座標が必要で、手動での位置決めが必要です。 ソリューション: HTML/CSSフローレイアウトを使用する。 絶対位置指定が必要な場合は、CSSを使用してください: .positioned-element { position: absolute; top: 100px; left: 50px; } 課題2:フォントオブジェクト管理 XFINIUM.PDF:各フォントのPdfStandardFontまたはPdfUnicodeTrueTypeFontオブジェクトを作成します。 ソリューション: CSS font-familyを使用してください: <style> body { font-family: Arial, sans-serif; } h1 { font-family: 'Times New Roman', serif; font-size: 24px; } </style> <style> body { font-family: Arial, sans-serif; } h1 { font-family: 'Times New Roman', serif; font-size: 24px; } </style> HTML 課題3: カラーハンドリング XFINIUM.PDF:色のためのPdfRgbColorとPdfBrushオブジェクトを作成します。 解決策:標準的なCSSの色を使用する: .header { color: navy; background-color: #f5f5f5; } .warning { color: rgb(255, 0, 0); } .info { color: rgba(0, 0, 255, 0.8); } 課題4:マニュアルの改ページ XFINIUM.PDF:Y位置を追跡し、コンテンツがオーバーフローしたときに手動で新しいページを作成します。 ソリューション: IronPDFは自動改ページを処理します。 明示的な制御にはCSSを使用してください: .section { page-break-after: always; } .keep-together { page-break-inside: avoid; } 課題5:画像の読み込み XFINIUM.PDF:ファイルストリームを開き、PdfJpegImageオブジェクトを作成し、座標で描画し、ストリームを閉じます。 ソリューション: ファイルパスまたはbase64データを含むHTML <img>タグを使用してください: <img src="image.jpg" width="200" height="150" /> <img src="data:image/jpeg;base64,..." /> <img src="image.jpg" width="200" height="150" /> <img src="data:image/jpeg;base64,..." /> HTML XFINIUM.PDF移行チェックリスト マイグレーション前のタスク コードベースを監査して、すべてのXFINIUM.PDFの使用法を特定してください: grep -r "using Xfinium.Pdf" --include="*.cs" . grep -r "Graphics.DrawString\|Graphics.DrawImage\|Graphics.DrawLine" --include="*.cs" . grep -r "using Xfinium.Pdf" --include="*.cs" . grep -r "Graphics.DrawString\|Graphics.DrawImage\|Graphics.DrawLine" --include="*.cs" . SHELL 座標ベースのレイアウトを文書化し、すべてのX,Y位置決め値に注意してください。 フォントと色のオブジェクト(PdfStandardFont、PdfRgbColor、PdfBrush)を識別します。 PdfFixedDocument.Pages.Add()を使用して、マージされたPDFワークフローをマップします。 コード更新タスク 1.Xfinium.Pdf NuGet パッケージの削除 2.IronPdf NuGetパッケージをインストールする 3.名前空間のインポートをXfinium.PdfからIronPdfに更新してください。 4.DrawString()コールをHTMLテキスト要素に変換する 5.DrawImage()コールをHTMLの<img>タグに変換する。 6.DrawRectangle()とDrawLine()を CSS ボーダーに変換する 7.PdfStandardFontをCSSのfont-familyに置き換えてください。 8.PdfRgbColorとPdfBrushをCSSカラーに置き換えてください。 9.ページ ループ マージを PdfDocument.Merge() に置き換えてください。 10.起動時にIronPDFライセンスの初期化を追加する 移行後のテスト 移行後、これらの点を検証してください: ビジュアル出力を比較し、外観が期待に一致することを確認する。 新しいHTML/CSSアプローチによるテキストレンダリングの検証 CSSを使用した画像ポジショニングのチェック 期待どおりに改ページが行われることを確認 PDFのセキュリティ設定が正しく適用されていることを確認する すべてのターゲットプラットフォームでテスト IronPDFに移行する主な利点 XFINIUM.PDFからIronPDFに移行することで、いくつかの重要な利点が得られます: HTML ベースのコンテンツ作成: Web 開発者は既存の HTML および CSS スキルを活用できます。 座標ベースの描画APIを学んだり、フォントやブラシのオブジェクトを管理したりする必要はありません。 自動レイアウト:テキストの折り返し、ページ区切り、フローレイアウトが自動的に行われます。 要素の位置や改ページを手動で計算する必要はありません。 最新の CSS サポート: Flexbox およびグリッド レイアウトを含む完全な CSS3。 レスポンシブデザインはPDFに直接翻訳します。 簡素化された PDF 操作: PdfDocument.Merge()などの一般的な操作に対する単一メソッド呼び出しにより、複雑なページ反復ループが置き換えられます。 積極的な開発: .NET 10 と C# 14 の採用が 2026 年まで増加するにつれて、IronPDF の定期的な更新により、現在のおよび将来の .NET バージョンとの互換性が確保されます。 広範なドキュメント: XFINIUM.PDF の小規模なエコシステムと比較して、包括的なドキュメント、チュートリアル、サポート リソースを備えた大規模なコミュニティです。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター 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#でPdfPigからIronPDFに移行する方法 この完全なC#ガイドでPdfPigからIronPDFへの移行をマスターしてください。読むだけのライブラリから包括的なPDFソリューションに切り替えます。テキスト抽出、HTML変換、メタデータアクセスのコード例を含みます。 詳しく読む C#でZetPDFからIronPDFに移行する方法C#でwkhtmltopdfから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#でPdfPigからIronPDFに移行する方法 この完全なC#ガイドでPdfPigからIronPDFへの移行をマスターしてください。読むだけのライブラリから包括的なPDFソリューションに切り替えます。テキスト抽出、HTML変換、メタデータアクセスのコード例を含みます。 詳しく読む