比較

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個以上含まれている

ライセンスと購入モデルの比較

アスペクトシンクフュージョンPDFIronPDF
購入モデルスイートバンドルのみスタンドアロン
ライセンス複雑な階層開発者ごとのシンプルな
コミュニティ制限<$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();
    }
}
$vbLabelText   $csharpLabel

このアプローチには以下が必要です:

  • 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");
    }
}
$vbLabelText   $csharpLabel

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();
    }
}
$vbLabelText   $csharpLabel

このアプローチには以下が必要です:

  • 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");
    }
}
$vbLabelText   $csharpLabel

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();
    }
}
$vbLabelText   $csharpLabel

このアプローチには以下が必要です:

  • ドキュメントごとに 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");
    }
}
$vbLabelText   $csharpLabel

PdfDocument.Merge() メソッドはドキュメントのリストを受け取り、結合した結果を返します。 ストリーム管理も、ページインデックス計算も、手動クリーンアップもありません。

完全な API マッピング

Syncfusion PDFからIronPDFへの移行を評価するチームはこれらのマッピングを参照することができます:

コア ドキュメントクラス

SyncfusionIronPDF
<コード>PdfDocument</コード<コード>ChromePdfRenderer</コード> / <コード>PdfDocument</コード
<コード>PdfPage</コード該当なし(HTMLでページを生成)
<コード>PdfLoadedDocument</コードPdfDocument.FromFile()を使用してください。
<コード>PdfLoadedPage</コード<コード>pdf.Pages[index]</コード

グラフィックスとドローイング

Syncfusion PdfGraphicsIronPDF
<コード>graphics.DrawString()</コードHTMLテキスト要素
<コード>graphics.DrawLine()</コードCSSボーダーまたは<hr>を使用してください。
<コード>graphics.DrawRectangle()</コード></コード<div>とCSSの組み合わせ
<コード>graphics.DrawImage()</コード<img>タグ
<コード>graphics.DrawPath()</コードSVG <コード><パス><コード></コード

フォントとテキスト

SyncfusionIronPDF
<コード>PdfStandardFont</コードCSS <コード>font-family</コード
<コード>PdfTrueTypeFont</コードCSS <コード>@font-face</コード
PdfFontFamily.Helveticaを使用してください。<コード>font-family: Helvetica
<コード>PdfFontStyle.Bold</コードfont-weight: bold フォントウェイト: 太字.
<コード>PdfFontStyle.Italic</コード<コード>フォントスタイル:イタリック</コード

色とブラシ

SyncfusionIronPDF
<コード>PdfBrushes.Black</コード<コード>色:黒</コード
<コード>PdfSolidBrush</コードCSS <コード>カラー</コード> / <コード>背景色</コード
PdfLinearGradientBrush(英語CSS <コード>リニアグラディエント()</コード
<コード>PdfColor</コードCSSカラー値

テーブル

Syncfusion PdfGridIronPDF
new PdfGrid().HTML <コード><テーブル><コード></コード
grid.DataSource = data.データからHTMLを構築する
grid.Columns.Add().<th>要素
grid.Rows.Add().<tr>要素
<コード>PdfGridCell</コード<td>要素

セキュリティ

SyncfusionIronPDF
document.Security.UserPasswordpdf.SecuritySettings.UserPassword
document.Security.OwnerPasswordpdf.SecuritySettings.OwnerPassword
ドキュメント.セキュリティ.パーミッションpdf.SecuritySettings.Allow*のようにします。
<コード>PdfPermissionsFlags.Print</コード<コード>AllowUserPrinting</コード
PdfPermissionsFlags.CopyContentAllowUserCopyPasteContentを許可します。

HTML変換

SyncfusionIronPDF
<コード>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
SHELL

ライセンス登録:

// 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");
$vbLabelText   $csharpLabel

IronPDFのインストール

# Single package
dotnet add package IronPdf
# Single package
dotnet add package IronPdf
SHELL

ライセンス構成:

// One-time at startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-KEY";
// One-time at startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-KEY";
$vbLabelText   $csharpLabel

結論

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生成パターンをカバーするドキュメントをご覧ください