C#でSyncfusion PDFからIronPDFへ移行する方法
SyncfusionPDFからIronPDFへの移行:完全なC#移行ガイド
Syncfusion PDF FrameworkからIronPDFに移行することで、PDF生成ワークフローは、大規模なスイートにバンドルされた座標ベースのグラフィックスAPIから、最新のChromiumレンダリングを備えたスタンドアロンのHTML/CSSファーストライブラリに変わります。 このガイドは、スイートのみのライセンス、複雑な展開要件、および座標ベースの位置決めを排除する、完全で段階的な移行パスを提供します。
なぜSyncfusion PDFからIronPDFへ移行するのか
SyncfusionのPDFフレームワークを理解する
Syncfusion PDF Frameworkは、C#を使用してPDFドキュメントを作成、編集、保護するための幅広い機能を提供する包括的なライブラリです。 SyncfusionのEssential Studioの一部として提供され、複数のプラットフォームにわたって1000以上のコンポーネントが含まれています。
しかし、最も大きな欠点の1つは、単体で購入できないことです; 開発者は、Syncfusionのコンポーネント一式を購入する必要があります。 この要件は、PDFの機能だけに関心のあるチームにとっては面倒なものです。特に、このバンドルには、自分たちのプロジェクトには不要なツールが含まれている可能性があるからです。
バンドルライセンスの問題
Syncfusionのライセンスモデルは、PDF機能のみを必要とするチームにとって大きな課題となります:
1.サイトのみの購入:PDFライブラリを単体で購入することはできません-Essential Studio全体を購入する必要があります。 2.コミュニティライセンスの制限:無料層では、<$1Mの収益と<5人の開発者>の両方が必要です。 3.複雑なデプロイメント・ライセンス:ウェブ、デスクトップ、サーバーのデプロイメントのための異なるライセンス 4.年間更新が必要:年間コストのサブスクリプションモデル 5.開発者ごとの価格:費用はチームサイズに比例します。 6.スイートの肥大化: 必要ないと思われる1000以上のコンポーネントが含まれています。
SyncfusionPDFとIronPDFの比較
| アスペクト | シンクフュージョンPDF | IronPDF |
|---|---|---|
| 購入モデル | スイートバンドルのみ | スタンドアロン |
| ライセンスについて | 複雑な階層 | 開発者ごとのシンプルな |
| コミュニティの制限 | <$1Mかつ<5人の開発者 | 無料トライアル、その後ライセンス |
| デプロイメント | 複数のライセンスタイプ | 1つのライセンスで |
| APIスタイル | 座標ベースのグラフィック | HTML/CSSファースト |
| HTMLのサポート。 | BlinkBinariesが必要です | ネイティブChromium |
| CSSサポート | 制限的 | フルCSS3/フレックスボックス/グリッド |
| 依存関係について | 複数のパッケージ | 単一のNuGet |
| スイートの要件 | はい(スイート全体) | なし |
| PDFにフォーカス。 | 幅広い; より大きなスイートの一部 | 狭い; PDFフォーカス |
IronPDFはPDF機能をスタンドアロン製品として提供することで、より焦点を絞ったアプローチを提供します。 この違いは、コストの検討と統合の容易さの両方に大きく影響します。
2025年と2026年まで.NET 10とC# 14の採用を計画しているチームにとって、IronPDFのスタンドアロンライセンスとHTML/CSSファーストのアプローチは、スイートに依存することなく柔軟性を提供します。
始める前に
前提条件
1..NET環境: .NET Framework 4.6.2+ または .NET Core 3.1+ / .NET 5/6/7/8/9+. 2.NuGetアクセス:NuGetパッケージをインストールする能力。 3.IronPDFライセンス:ironPdf.comからライセンスキーを取得してください。
NuGetパッケージの変更
# Remove Syncfusion packages
dotnet remove package Syncfusion.Pdf.Net.Core
dotnet remove package Syncfusion.HtmlToPdfConverter.Net.Windows
dotnet remove package Syncfusion.Licensing
# Install IronPDF
dotnet add package IronPdf# Remove Syncfusion packages
dotnet remove package Syncfusion.Pdf.Net.Core
dotnet remove package Syncfusion.HtmlToPdfConverter.Net.Windows
dotnet remove package Syncfusion.Licensing
# Install IronPDF
dotnet add package IronPdfライセンス構成
シンクフュージョン:
// Must register before any Syncfusion calls
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-SYNCFUSION-KEY");// Must register before any Syncfusion calls
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-SYNCFUSION-KEY");IRON VB CONVERTER ERROR developers@ironsoftware.comIronPDF:
// One-time at startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-KEY";// One-time at startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-KEY";IRON VB CONVERTER ERROR developers@ironsoftware.com完全な API リファレンス
名前空間の変更
// Before: Syncfusion PDF
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Pdf.Parsing;
using Syncfusion.HtmlConverter;
using Syncfusion.Drawing;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;// Before: Syncfusion PDF
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Pdf.Parsing;
using Syncfusion.HtmlConverter;
using Syncfusion.Drawing;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;IRON VB CONVERTER ERROR developers@ironsoftware.comコア API マッピング
| Syncfusion | IronPDF | ノート |
|---|---|---|
| <コード>PdfDocument</コード | <コード>ChromePdfRenderer</コード | PDF作成 |
| <コード>PdfLoadedDocument</コード | PdfDocument.FromFile()を使用してください。 | PDFを読み込む |
| <コード>HtmlToPdfConverter</コード | <コード>ChromePdfRenderer</コード | HTML変換 |
| <コード>graphics.DrawString()</コード | HTMLテキスト要素 | <p>, <h1> |
| <コード>graphics.DrawImage()</コード | <img>タグ | HTML画像 |
| <コード>PdfGrid</コード | HTML <コード><テーブル><コード></コード | 表 |
| <コード>PdfStandardFont</コード | CSS <コード>font-family</コード | フォント |
| <コード>PdfBrushes.Black</コード | CSS <コード>色: 黒</コード | 色 |
ドキュメント.セキュリティ | <コード>pdf.SecuritySettings</コード | セキュリティ |
| <コード>PdfTextExtractor</コード | pdf.ExtractAllText()を使用してください。 | テキスト抽出 |
ImportPageRange()を使用してください。 | PdfDocument.Merge()を使用してください。 | マージ |
document.Save(stream)を実行します。 | pdf.SaveAs(path)のようにします。 | 節約 |
document.Close(true). | 不要 | 自動クリーンアップ |
コード移行の例
例1: HTML/URLからPDFへの変換
翻訳前 (Syncfusion PDF):
// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.HtmlConverter;
using Syncfusion.Pdf;
using System.IO;
class Program
{
static void Main()
{
// Initialize HTML to PDF converter
HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter();
// Convert URL to PDF
PdfDocument document = htmlConverter.Convert("https://www.example.com");
// Save the document
FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
document.Save(fileStream);
document.Close(true);
fileStream.Close();
}
}// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.HtmlConverter;
using Syncfusion.Pdf;
using System.IO;
class Program
{
static void Main()
{
// Initialize HTML to PDF converter
HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter();
// Convert URL to PDF
PdfDocument document = htmlConverter.Convert("https://www.example.com");
// Save the document
FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
document.Save(fileStream);
document.Close(true);
fileStream.Close();
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
// Create a PDF from a URL
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
// Save the PDF
pdf.SaveAs("Output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
// Create a PDF from a URL
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
// Save the PDF
pdf.SaveAs("Output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comこの例は、基本的なAPIの違いを示しています。 Syncfusion PDFでは、HtmlToPdfConverterインスタンスを作成し、PdfDocumentを返すConvert()を呼び出し、手動でFileStreamを作成し、保存し、ドキュメントとストリームの両方を閉じる必要があります。
IronPDFはChromePdfRendererとRenderUrlAsPdf()をわずか3行のコードで使用します。 FileStreamの管理、Close()呼び出しはありません。 包括的な例については、HTML to PDF documentationを参照してください。
例2:テキストからPDFを作成する
翻訳前 (Syncfusion PDF):
// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Drawing;
using System.IO;
class Program
{
static void Main()
{
// Create a new PDF document
PdfDocument document = new PdfDocument();
// Add a page
PdfPage page = document.Pages.Add();
// Create a font
PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 12);
// Draw text
page.Graphics.DrawString("Hello, World!", font, PdfBrushes.Black, new PointF(10, 10));
// Save the document
FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
document.Save(fileStream);
document.Close(true);
fileStream.Close();
}
}// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Drawing;
using System.IO;
class Program
{
static void Main()
{
// Create a new PDF document
PdfDocument document = new PdfDocument();
// Add a page
PdfPage page = document.Pages.Add();
// Create a font
PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 12);
// Draw text
page.Graphics.DrawString("Hello, World!", font, PdfBrushes.Black, new PointF(10, 10));
// Save the document
FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
document.Save(fileStream);
document.Close(true);
fileStream.Close();
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
class Program
{
static void Main()
{
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
// Save the document
pdf.SaveAs("Output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
class Program
{
static void Main()
{
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
// Save the document
pdf.SaveAs("Output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comSyncfusion PDFは座標ベースのグラフィックモデルを使用しています。 PdfDocumentを作成し、PdfPageを追加し、PdfFontFamily.HelveticaでPdfFontを作成し、座標(new PointF(10, 10))、フォント、ブラシ(PdfBrushes.Black)を指定してpage.Graphics.DrawString()を呼び出します。 最後に、FileStream の作成と廃棄を管理します。
IronPdfはHTML/CSSファーストのアプローチを採用しています。 Instead of coordinates, you write <h1>Hello, World!</h1> and let CSS handle positioning, fonts, and colors. このアプローチは、よりシンプルで保守性が高く、開発者がすでに持っているスキルを活用できます。 詳しくは、チュートリアルをご覧ください。
例 3: PDF ドキュメントをマージする
翻訳前 (Syncfusion PDF):
// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.Pdf;
using Syncfusion.Pdf.Parsing;
using System.IO;
class Program
{
static void Main()
{
// Load the first PDF document
FileStream stream1 = new FileStream("Document1.pdf", FileMode.Open, FileAccess.Read);
PdfLoadedDocument loadedDocument1 = new PdfLoadedDocument(stream1);
// Load the second PDF document
FileStream stream2 = new FileStream("Document2.pdf", FileMode.Open, FileAccess.Read);
PdfLoadedDocument loadedDocument2 = new PdfLoadedDocument(stream2);
// Merge the documents
PdfDocument finalDocument = new PdfDocument();
finalDocument.ImportPageRange(loadedDocument1, 0, loadedDocument1.Pages.Count - 1);
finalDocument.ImportPageRange(loadedDocument2, 0, loadedDocument2.Pages.Count - 1);
// Save the merged document
FileStream outputStream = new FileStream("Merged.pdf", FileMode.Create);
finalDocument.Save(outputStream);
// Close all documents
finalDocument.Close(true);
loadedDocument1.Close(true);
loadedDocument2.Close(true);
stream1.Close();
stream2.Close();
outputStream.Close();
}
}// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.Pdf;
using Syncfusion.Pdf.Parsing;
using System.IO;
class Program
{
static void Main()
{
// Load the first PDF document
FileStream stream1 = new FileStream("Document1.pdf", FileMode.Open, FileAccess.Read);
PdfLoadedDocument loadedDocument1 = new PdfLoadedDocument(stream1);
// Load the second PDF document
FileStream stream2 = new FileStream("Document2.pdf", FileMode.Open, FileAccess.Read);
PdfLoadedDocument loadedDocument2 = new PdfLoadedDocument(stream2);
// Merge the documents
PdfDocument finalDocument = new PdfDocument();
finalDocument.ImportPageRange(loadedDocument1, 0, loadedDocument1.Pages.Count - 1);
finalDocument.ImportPageRange(loadedDocument2, 0, loadedDocument2.Pages.Count - 1);
// Save the merged document
FileStream outputStream = new FileStream("Merged.pdf", FileMode.Create);
finalDocument.Save(outputStream);
// Close all documents
finalDocument.Close(true);
loadedDocument1.Close(true);
loadedDocument2.Close(true);
stream1.Close();
stream2.Close();
outputStream.Close();
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
class Program
{
static void Main()
{
// Load PDF documents
var pdf1 = PdfDocument.FromFile("Document1.pdf");
var pdf2 = PdfDocument.FromFile("Document2.pdf");
// Merge PDFs
var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
// Save the merged document
merged.SaveAs("Merged.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
class Program
{
static void Main()
{
// Load PDF documents
var pdf1 = PdfDocument.FromFile("Document1.pdf");
var pdf2 = PdfDocument.FromFile("Document2.pdf");
// Merge PDFs
var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
// Save the merged document
merged.SaveAs("Merged.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comPDFをマージする際のコントラストは劇的です。 Syncfusion PDFでは、各入力ドキュメントに対してFileStreamオブジェクトを作成し、それらをPdfLoadedDocumentとして読み込み、新しいPdfDocumentを作成し、各ソースに対して開始と終了のインデックスを指定してImportPageRange()を呼び出す必要があります、出力のFileStreamを作成し、6つの別々のオブジェクト(finalDocument, loadedDocument1, loadedDocument2, stream1, stream2, outputStream)を閉じます。
IronPDFはPdfDocument.FromFile()を使って各PDFを読み込み、静的なPdfDocument.Merge()メソッドでドキュメントのリストを受け取ります。 ストリーム管理、手動でのページ範囲計算、クローズコールはありません。
API哲学の主な相違点
座標ベース vs HTML/CSSファースト
Syncfusion PDFは、従来のPDFライブラリから受け継いだ座標ベースのグラフィックモデルを使用しています:
// Syncfusion: マニュアル positioning
page.Graphics.DrawString("Text", font, PdfBrushes.Black, new PointF(100, 200));
page.Graphics.DrawRectangle(brush, new RectangleF(50, 50, 200, 100));// Syncfusion: マニュアル positioning
page.Graphics.DrawString("Text", font, PdfBrushes.Black, new PointF(100, 200));
page.Graphics.DrawRectangle(brush, new RectangleF(50, 50, 200, 100));IRON VB CONVERTER ERROR developers@ironsoftware.comIronPDFはレイアウトにHTML/CSSを使用しています:
// IronPDF: CSS-based positioning
var html = @"
<div style='margin: 50px; padding: 20px; border: 1px solid black;'>
<p style='color: black;'>Text</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);// IronPDF: CSS-based positioning
var html = @"
<div style='margin: 50px; padding: 20px; border: 1px solid black;'>
<p style='color: black;'>Text</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);IRON VB CONVERTER ERROR developers@ironsoftware.comHTML/CSSのアプローチは、ウェブ開発者にとってより直感的で、メンテナンスが容易で、異なるページサイズでも一貫した結果をもたらします。
ストリーム管理と自動クリーンアップの比較
Syncfusion PDFには、明示的なストリームとドキュメント廃棄が必要です:
// Syncfusion: マニュアル cleanup
FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
document.Save(fileStream);
document.Close(true);
fileStream.Close();// Syncfusion: マニュアル cleanup
FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
document.Save(fileStream);
document.Close(true);
fileStream.Close();IRON VB CONVERTER ERROR developers@ironsoftware.comIronPDFは自動的にクリーンアップを行います:
// IronPDF:自動翻訳cleanup
pdf.SaveAs("Output.pdf");// IronPDF:自動翻訳cleanup
pdf.SaveAs("Output.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.com機能比較
| フィーチャー | シンクフュージョンPDF | IronPDF |
|---|---|---|
| スタンダロンの購入 | なし(スイートのみ) | はい |
| ライセンスについて | コミュニティ制限付き商用 | 簡易商用 |
| HTMLからPDFへ | BlinkBinariesが必要です | ネイティブChromium |
| CSS3のサポート。 | 制限的 | フル(フレックスボックス、グリッド) |
| APIスタイル | 座標ベースのグラフィック | HTML/CSSファースト |
| ストリーム管理 | マニュアル | 自動翻訳 |
| 依存関係について | 複数のパッケージ | 単一のNuGet |
| 展開の複雑さ | 複雑な | ストレート |
移行チェックリスト
移行前
- [コードベース内のすべてのSyncfusion PDFの使用状況の確認
- [ライセンス費用と導入要件の文書化
- [ ]
PdfGrid、PdfGraphics、HtmlToPdfConverterの使用法を特定する。 - [ironpdf.comからIronPDFライセンスキーを入手してください。
コードの更新
- [ ] Syncfusionパッケージ(
Syncfusion.Pdf.Net.Core、Syncfusion.HtmlToPdfConverter.Net.Windows、Syncfusion.Licensing)を削除します。 - [ ]
IronPdfNuGetパッケージをインストールしてください。 - [ ] 名前空間のインポートを更新する (
using Syncfusion.Pdf;→using IronPdf;) - [ ]
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense()をIronPdf.License.LicenseKey = "..."に置き換えてください。 - [ ]
HtmlToPdfConverter.Convert()をChromePdfRenderer.RenderUrlAsPdf()またはRenderHtmlAsPdf()に置き換えてください。 - [ ]<コード>PdfDocument</コード+
Pages.Add()+Graphics.DrawString()をChromePdfRenderer.RenderHtmlAsPdf()に置き換えてください。 - [ ]
PdfLoadedDocumentをPdfDocument.FromFile()に置き換えてください。 - [ ]
ImportPageRange()をPdfDocument.Merge()に置き換えてください。 - [ ]
document.Save(stream)を実行します。をpdf.SaveAs(path)のようにします。に置き換えてください。 - [ ] すべての
document.Close(true).とstream.Close()呼び出しを削除する。 - [ ]
PdfGridをHTMLの<table>要素に置き換えてください。 - [ ]
PdfStandardFontをCSSのfont-familyに置き換えてください。 - [ ]
PdfBrushesをCSSのcolorプロパティに置き換えてください。
テスティング
- [PDF 出力の視覚的比較
- [CSS レンダリングの改善(flexbox、grid が動作するようになりました。)
- [テストテキスト抽出
- [テストのマージと分割
- [性能比較
結論
Syncfusion PDF FrameworkとIronPDFのどちらを選択するかは、特定のプロジェクトのニーズと各ライブラリがもたらす幅広いツールセットを理解する必要があります。 Syncfusionは、大規模なスイートの一部として堅牢なオールインワン・ソリューションを提供しており、PDF機能以上のものを必要とする組織にとって理想的です。 一方、IronPDFは、追加コンポーネントを必要とせず、ストレートなPDF統合を優先するプロジェクトに最適な、集中的で投資しやすいオプションを提供します。
この移行における主な変更点は以下のとおりです: 1.ライセンス: スイートバンドルのみ → スタンドアロン購入 2.APIスタイル:座標ベースのグラフィックス → HTML/CSSファースト 3.HTML変換:HtmlToPdfConverter.Convert() → ChromePdfRenderer.RenderUrlAsPdf(). 4.テキストレンダリング:フォント/ブラシを使用した Graphics.DrawString() → CSS を使用した HTML 要素 5.PDFを読み込む:PdfLoadedDocument + FileStream → PdfDocument.FromFile(). 6.PDFをマージする:ImportPageRange() with manual page indices → PdfDocument.Merge(). 7.保存:document.Save(stream) + ストリーム管理 → pdf.SaveAs(path) 8.クリーンアップ:ドキュメントとストリームに対する手動 Close() 呼び出し → 自動 9.表:PdfGrid(セル操作付き) → HTML (CSS付き 10.フォント:PdfStandardFont(PdfFontFamily.Helvetica, 12) → CSS `font-family: Helvetica; フォントサイズ:12pt
まとめると、企業はコスト、ライセンス条件、特定のプロジェクト要件を考慮し、どのライブラリが自社の目標に最も合致するかを判断する必要があります。 C#でPDFを扱うための詳細なチュートリアルや有益な洞察については、IronPDFのオンラインガイダンスをご活用ください。
IronPDFドキュメント、チュートリアル、APIリファレンスを参照し、Syncfusion PDFへの移行を促進してください。






