Syncfusion PDFとIronPDFの比較:技術比較ガイド
SyncfusionのPDFフレームワークを理解する
Syncfusion PDF Frameworkは、C#を使用してPDFドキュメントを作成、編集、保護するための幅広い機能を提供する包括的なライブラリです。 SyncfusionのEssential Studioの一部として提供され、複数のプラットフォームにわたって1000以上のコンポーネントが含まれています。
このフレームワークは、PDF文書の作成と操作、さまざまなソースからのPDFファイルの変換、高度なセキュリティ対策の実装をサポートする広範な機能セットを提供します。 しかし、最も大きな特徴の1つは、単体では購入できないことです。開発者はSyncfusionのコンポーネント・スイート全体を購入する必要があります。 この要件は、PDFの機能のみに関心のあるチームにとっては面倒なものです。
さらに、Syncfusionは無料のコミュニティライセンスを提供していますが、収益が100万ドル未満で、開発者が5人未満の小規模企業のみが利用できるという制限があります。 さまざまなライセンスを必要とするさまざまなデプロイメントがあるため、ライセンス条件が複雑になる可能性があります。
IronPDFの理解
IronPDFは、PDF機能をスタンドアロン製品として提供することで、集中的なアプローチを提供します。 Syncfusionの座標ベースのグラフィックスAPIとは異なり、IronPDFはHTML/CSSファーストのアプローチを採用しており、開発者は使い慣れたウェブテクノロジーを使ってPDFコンテンツを作成し、それをネイティブのChromiumエンジンでレンダリングします。
IronPDFは、Syncfusion PDF Frameworkのレイヤーライセンスとは対照的に、デプロイの複雑さやシナリオに依存しない明確な条件を提供することでライセンスを簡素化します。 ライブラリは、複数の依存関係を必要とせず、単一のNuGetパッケージとしてインストールされます。
バンドルライセンスの問題
Syncfusionのライセンスモデルは、PDF機能のみを必要とするチームにとって大きな課題となります:
- Suiteのみの購入: PDFライブラリを単独で購入することはできません。Essential Studio全体を購入する必要があります。 -コミュニティライセンスの制限:無料プランでは、収益が100万ドル未満かつ開発者が5人未満である必要があります。 -複雑な展開ライセンス: Web、デスクトップ、サーバーの展開ごとに異なるライセンス -毎年更新が必要:年間費用がかかるサブスクリプションモデル -開発者ごとの価格設定:コストはチームの規模に応じて比例して増加します -スイートの肥大化:必要のないコンポーネントが1000個以上含まれている
ライセンスと購入モデルの比較
| アスペクト | シンクフュージョンPDF | IronPDF |
|---|---|---|
| 購入モデル | スイートバンドルのみ | スタンドアロン |
| ライセンス | 複雑な階層 | 開発者ごとのシンプルな |
| コミュニティ制限 | <$1Mかつ<5人の開発者 | 無料トライアル、その後ライセンス |
| デプロイメント | 複数のライセンスタイプ | 1つのライセンスで |
| APIスタイル | 座標ベースのグラフィック | HTML/CSSファースト |
| HTMLサポート | BlinkBinariesが必要です | ネイティブChromium |
| CSSサポート | 制限的 | フルCSS3/フレックスボックス/グリッド |
| 依存関係 | 複数のパッケージ | 単一のNuGet |
API設計理念
Syncfusion PDFとIronPDFの基本的な違いはAPIの設計アプローチにあります。
Syncfusion 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();
}
}このアプローチには以下が必要です:
document.Pages.Add()による手動ページ管理PdfStandardFontでフォントオブジェクトを作成するPointF(10,10)による明示的な座標位置決め- 手動ストリーム管理と明示的な
Close()呼び出し - 異なる名前空間に対する複数のusing文
IronPDF:HTML/CSSファーストのアプローチ
IronPDFはコンテンツ作成にHTMLとCSSを使用し、開発者がすでに知っているウェブ技術を活用しています:
// 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");
}
}RenderHtmlAsPdf メソッドは、HTMLコンテンツを直接PDFに変換します。 Chromiumエンジンは、座標計算、手動フォントオブジェクト、ストリーム管理を行わず、レイアウトを自動的に処理します。
HTMLからPDFへの変換
ウェブコンテンツをPDF文書に変換すると、アプローチや複雑さに大きな違いがあることがわかります。
SyncfusionのPDF HTML変換について
Syncfusion PDFは、明示的なドキュメントとストリーム管理を必要とする別のHTMLコンバータを使用しています:
// 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();
}
}このアプローチには以下が必要です:
HtmlToPdfConverterクラスの分離- HTMLレンダリング用BlinkBinaries
- 手動による
FileStreamの作成と管理 - 明示的な
document.Close(true)呼び出し - 複数のクリーンアップ作業
IronPDFのHTML変換
IronPdfは合理化されたURLから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");
}
}// 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");
}
}RenderUrlAsPdf メソッドはURLに移動し、ネイティブのChromiumエンジンを使ってJavaScriptを実行しながらページをレンダリングし、結果をキャプチャします。 別個のコンバーター・クラス、ストリーム管理、明示的なクリーンアップはありません。
PDFマージ操作
複数のPDFドキュメントをマージすることで、2つのライブラリの複雑さの違いを示しています。
シンクフュージョンPDFMerge (英語
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();
}
}このアプローチには以下が必要です:
- ドキュメントごとに
FileStream<//code> オブジェクトを分けてください。 - 既存のPDFを読むための
PdfLoadedDocument。 - ページ・インデックスを使用した手動
ImportPageRange()呼び出し - 結果の新しい
PdfDocumentの作成 - クリーンアップのための6つの別々の
Close()コール - 重要な定型コード
IronPDFMerge (英語)
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");
}
}PdfDocument.Merge() メソッドはドキュメントのリストを受け取り、結合した結果を返します。 ストリーム管理も、ページインデックス計算も、手動クリーンアップもありません。
完全な API マッピング
Syncfusion PDFからIronPDFへの移行を評価するチームはこれらのマッピングを参照することができます:
コア ドキュメントクラス
| Syncfusion | IronPDF |
|---|---|
| <コード>PdfDocument</コード | <コード>ChromePdfRenderer</コード> / <コード>PdfDocument</コード |
| <コード>PdfPage</コード | 該当なし(HTMLでページを生成) |
| <コード>PdfLoadedDocument</コード | PdfDocument.FromFile()を使用してください。 |
| <コード>PdfLoadedPage</コード | <コード>pdf.Pages[index]</コード |
グラフィックスとドローイング
| Syncfusion PdfGraphics | IronPDF |
|---|---|
| <コード>graphics.DrawString()</コード | HTMLテキスト要素 |
| <コード>graphics.DrawLine()</コード | CSSボーダーまたは<hr>を使用してください。 |
| <コード>graphics.DrawRectangle()</コード></コード | <div>とCSSの組み合わせ |
| <コード>graphics.DrawImage()</コード | <img>タグ |
| <コード>graphics.DrawPath()</コード | SVG <コード><パス><コード></コード |
フォントとテキスト
| Syncfusion | IronPDF |
|---|---|
| <コード>PdfStandardFont</コード | CSS <コード>font-family</コード |
| <コード>PdfTrueTypeFont</コード | CSS <コード>@font-face</コード |
PdfFontFamily.Helveticaを使用してください。 | <コード>font-family: Helvetica |
| <コード>PdfFontStyle.Bold</コード | font-weight: bold フォントウェイト: 太字. |
| <コード>PdfFontStyle.Italic</コード | <コード>フォントスタイル:イタリック</コード |
色とブラシ
| Syncfusion | IronPDF |
|---|---|
| <コード>PdfBrushes.Black</コード | <コード>色:黒</コード |
| <コード>PdfSolidBrush</コード | CSS <コード>カラー</コード> / <コード>背景色</コード |
PdfLinearGradientBrush(英語 | CSS <コード>リニアグラディエント()</コード |
| <コード>PdfColor</コード | CSSカラー値 |
テーブル
| Syncfusion PdfGrid | IronPDF |
|---|---|
new PdfGrid(). | HTML <コード><テーブル><コード></コード |
grid.DataSource = data. | データからHTMLを構築する |
grid.Columns.Add(). | <th>要素 |
grid.Rows.Add(). | <tr>要素 |
| <コード>PdfGridCell</コード | <td>要素 |
セキュリティ
| Syncfusion | IronPDF |
|---|---|
document.Security.UserPassword。 | pdf.SecuritySettings.UserPassword。 |
document.Security.OwnerPassword。 | pdf.SecuritySettings.OwnerPassword。 |
ドキュメント.セキュリティ.パーミッション | pdf.SecuritySettings.Allow*のようにします。 |
| <コード>PdfPermissionsFlags.Print</コード | <コード>AllowUserPrinting</コード |
PdfPermissionsFlags.CopyContent。 | AllowUserCopyPasteContentを許可します。 |
HTML変換
| Syncfusion | IronPDF |
|---|---|
| <コード>HtmlToPdfConverter</コード | <コード>ChromePdfRenderer</コード |
converter.Convert(url). | renderer.RenderUrlAsPdf(url)のようにします。 |
converter.Convert(html, baseUrl). | renderer.RenderHtmlAsPdf(html). |
| <コード>BlinkConverterSettings</コード | <コード>ChromePdfRenderOptions</コード |
settings.EnableJavaScriptを使用してください。 | RenderingOptions.EnableJavaScript。 |
機能比較の概要
| 特徴/側面 | Syncfusion PDFフレームワーク | IronPDF |
|---|---|---|
| 購入モデル | Essential Studioの一部 | スタンドアロン |
| ライセンスについて | コミュニティ制限付き商用 | 簡易商用 |
| 展開の複雑さ | 複雑な | ストレート |
| スイートの要件 | はい(スイート全体) | なし |
| PDFにフォーカス。 | 幅広い; より大きなスイートの一部 | 狭い; PDFフォーカス |
| APIスタイル | 座標ベース | HTML/CSSファースト |
| CSSサポート | 制限的 | フルCSS3/フレックスボックス/グリッド |
| レンダリングエンジン | 必要なBlinkBinaries | ネイティブChromium |
チームがシンクフュージョンPDFへの移行を検討するとき
開発チームがSyncfusion PDFに代わるものを評価するのには、いくつかの要因があります:
スイートバンドル要件は、PDF機能のみが必要な場合に、Essential Studio全体の購入を強制します。 これには、PDF生成のみに焦点を当てたプロジェクトには不要かもしれない1000以上のコンポーネントが含まれます。
コミュニティライセンスの制限により、無料での使用は、収益が100万ドル未満かつ開発者が5人未満の企業に制限されています。 いずれかの基準を超える組織は、商用ライセンスを購入する必要があります。
複雑なデプロイメントライセンスは、ウェブ、デスクトップ、サーバーのデプロイメントに異なるライセンスタイプを必要とし、管理上のオーバーヘッドと潜在的なコンプライアンス上の懸念を追加します。
座標ベースのAPIの複雑さは、手作業による位置計算、フォントオブジェクトの管理、明示的なストリーム処理を必要とするため、HTML/CSSのアプローチに比べて開発時間が長くなります。
複数のパッケージの依存関係により、単一の統一パッケージではなく、機能ごとに別々のパッケージ(Syncfusion.Pdf.Net.Core、Syncfusion.HtmlToPdfConverter.Net.Windows、Syncfusion.Pdf.Imaging.Net.Core)をインストールする必要があります。
インストールの比較
SyncfusionのPDFインストール
#複数のパッケージmay be needed
dotnet add package Syncfusion.Pdf.Net.Core
dotnet add package Syncfusion.HtmlToPdfConverter.Net.Windows
dotnet add package Syncfusion.Pdf.Imaging.Net.Core
dotnet add package Syncfusion.Licensing#複数のパッケージmay be needed
dotnet add package Syncfusion.Pdf.Net.Core
dotnet add package Syncfusion.HtmlToPdfConverter.Net.Windows
dotnet add package Syncfusion.Pdf.Imaging.Net.Core
dotnet add package Syncfusion.Licensingライセンス登録:
// 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");IronPDFのインストール
# Single package
dotnet add package IronPdf# Single package
dotnet add package IronPdfライセンス構成:
// One-time at startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-KEY";// One-time at startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-KEY";結論
Syncfusion PDF FrameworkとIronPDFは異なる組織背景や開発嗜好に対応しています。 Syncfusionは、Essential Studioの一部として包括的なスイートを提供しており、PDF機能以外にも複数のコンポーネントタイプを必要とするSyncfusionエコシステムに既に投資している組織に最適です。 座標ベースのグラフィックスAPIは、明示的な位置決めに慣れている開発者にきめ細かい制御を提供します。
IronPdfはHTML/CSSファーストのアプローチでPDF生成に特化したスタンドアローンのソリューションを提供します。 レイアウトに使い慣れたWeb技術を使用できることと、簡素化されたライセンスとシングルパッケージのインストールを組み合わせることで、PDF開発ワークフローにおける一般的な摩擦点に対処しています。
Syncfusion PDFからIronPDFへの移行を評価する場合、チームはライセンスの複雑さ、APIの好み、スイートバンドルモデルがニーズに合っているかどうかなど、具体的な要件を考慮する必要があります。 最新のウェブベースのドキュメント生成ワークフローで2026年に.NET 10とC# 14をターゲットとするチームにとって、IronPDFのHTML/CSSアプローチとネイティブのChromiumエンジンは現代の開発プラクティスに沿った機能を提供します。
実装ガイダンスについては、HTMLからPDFへのIronPDFチュートリアルと、最新の.NETアプリケーションのためのPDF生成パターンをカバーするドキュメントをご覧ください。