比較

Expert PDFとIronPDFの比較:技術比較ガイド

エキスパートPDFvs IronPDF:.NET開発者のための技術比較

.NET開発者がHTMLからPDFへの変換ライブラリを評価するとき、Expert PDFは、確立されたHTML5サポートを持つ商用オプションとして浮上します。 しかし、2018年以降に凍結されたドキュメント、レガシーなChromeレンダリングエンジンへの依存、断片化された製品モデルにより、多くのチームが代替案を検討しています。 IronPdfは最新のChromiumレンダリング、継続的なアップデート、機能を1つのパッケージに統合したオールインワンライブラリによるモダンなアプローチを提供します。

この比較では、プロの開発者やアーキテクトが.NET PDFの要件について十分な情報を得た上で決定できるように、技術的に関連する次元で両ライブラリを検証します。

エキスパートPDFを理解する

Expert PDF (ExpertPdf) は、商用HTML-PDF変換ライブラリで、動的なWebページをPDF文書に変換することを容易にします。 このライブラリはHTML5をサポートしており、最新のWebコンテンツをPDF形式でレンダリングするのに役立ちます。

Expert PDFは、メインの変換インターフェースとしてPdfConverterクラスを使用し、さまざまな変換シナリオのためにGetPdfBytesFromHtmlString()GetPdfBytesFromUrl()GetPdfBytesFromHtmlFile()のようなメソッドを提供します。 このライブラリは、PdfDocumentOptionsPdfHeaderOptionsPdfFooterOptions プロパティを通してコンバータの設定を整理します。

Expert PDFの大きな制限は、PDFのレンダリングに古いバージョンのChromeを使用していることです。 FlexboxやGridのようなCSS3機能を使用した最先端のウェブデザインを扱う場合、最新のウェブ標準や、その後のChromiumバージョンで行われたレンダリングの改善は、Expert PDFの出力には反映されず、正確なレンダリングが行われない可能性があります。

Expert PDFのドキュメントは2018年以来凍結されており、6年以上更新されていないため、開発者が最新の情報、例、ベストプラクティスを見つけることがますます難しくなっています。 ライブラリは断片化された製品群として販売されており、それぞれ個別のパッケージ(HtmlToPdf、PDFMerge、PDFSecurity、PDFSplit、PdfToImage)が必要で、価格は550ドルから1,200ドルです。

IronPDFの理解

IronPDFは継続的なアップデートと改善で知られる.NET PDFライブラリです。 このライブラリは最新のChromiumレンダリングエンジンを使用しているため、最新のWeb標準を満たし、FlexboxやGridレイアウトを含むCSS3をフルサポートしてHTMLを正確にレンダリングします。

IronPDFはChromePdfRendererを主要な変換クラスとして使用し、RenderingOptionsはページサイズ、向き、余白、ヘッダー、フッターの設定を提供します。 ライブラリはPdfDocumentオブジェクトを返し、保存する前にさらに操作できるため、後処理操作に柔軟性を提供します。

IronPdfは一貫した毎月のリリース、.NET 6/7/8/9+のネイティブサポート、Windows、Linux、macOS、Docker環境での真のクロスプラットフォーム互換性で包括的なドキュメントを提供します。

アーキテクチャと製品モデルの比較

これらの.NET PDFライブラリの基本的な違いは、製品構成とレンダリング技術にあります。

アスペクトエキスパートPDFIronPDF
ドキュメント2018年より凍結継続的な更新
レンダリングエンジンレガシーChrome最新のChromium
CSSサポート限定的なCSS3フルCSS3(フレックスボックス、グリッド)
価格$550-$1,200競争力のある価格設定
更新頻度頻度毎月のリリース
製品モデル断片化(5つ以上のDLL)オールインワンライブラリ
モダン.NET制限的.NET 6/7/8/9+ ネイティブ
非同期サポートについて制限的完全なasync/await
セキュリティ・アップデート頻度定期的なパッチ

Expert PDFの断片的な製品群には以下のものがあります:

  • ExpertPdf.HtmlToPdf:HTMLからPDFへの変換
  • ExpertPdf.PDFMerge:PDFマージ
  • ExpertPdf.PDFSecurity:暗号化とパスワード
  • ExpertPdf.PDFSplit:PDF分割
  • ExpertPdf.PdfToImage:PDFから画像への変換

各パッケージには個別のライセンスが必要です。 IronPdfは同等の機能を一つのNuGetパッケージに統合しています。

コードの比較:一般的なPDF操作

HTMLからPDFへの変換

HTMLコンテンツをPDFに変換すると、基本的なAPIの違いがわかります。

エキスパートPDF:

// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Convert HTML string to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");

        // Save to file
        System.IO.File.WriteAllBytes("output.pdf", pdfBytes);

        Console.WriteLine("PDF created successfully!");
    }
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Convert HTML string to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");

        // Save to file
        System.IO.File.WriteAllBytes("output.pdf", pdfBytes);

        Console.WriteLine("PDF created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>");

        // Save to file
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>");

        // Save to file
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Expert PDFは、GetPdfBytesFromHtmlString()から直接byte[]を返すため、File.WriteAllBytes()による手動でのファイル書き込みが必要です。 IronPDFはSaveAs()メソッドを持つPdfDocumentオブジェクトを返し、よりクリーンな保存操作を提供し、保存前に追加の操作を可能にします。

高度なHTMLレンダリングオプションについては、HTMLからPDFへの変換ガイドをご覧ください。

URLからPDFへの変換

ウェブページをPDF文書としてキャプチャすると、構成パターンの違いがわかります。

エキスパートPDF:

// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Set page size and orientation
        pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
        pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;

        // Convert URL to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");

        // Save to file
        System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);

        Console.WriteLine("PDF from URL created successfully!");
    }
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Set page size and orientation
        pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
        pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;

        // Convert URL to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");

        // Save to file
        System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);

        Console.WriteLine("PDF from URL created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Set page size and orientation
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

        // Convert URL to PDF
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");

        // Save to file
        pdf.SaveAs("webpage.pdf");

        Console.WriteLine("PDF from URL created successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Set page size and orientation
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

        // Convert URL to PDF
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");

        // Save to file
        pdf.SaveAs("webpage.pdf");

        Console.WriteLine("PDF from URL created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

どちらのライブラリも、ページサイズと向きの設定を提供します。 Expert PDFはPdfDocumentOptions.PdfPageSize<//code>とPdfDocumentOptions.PdfPageOrientation<//code>を使用し、IronPDFはRenderingOptions.PaperSize<//code>とRenderingOptions.PaperOrientation<//code>を使用します。 ネーミングは同様のパターンに従いますが、IronPDFは印刷用語との一貫性を保つために "Paper "という接頭辞を使用します。

URL レンダリングの詳細については、URL to PDF documentationを参照してください。

ページ番号を含むヘッダーとフッター

ヘッダーとフッターを追加することで、特にページ番号の構文において、API設計の大きな違いが示されます。

エキスパートPDF:

// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Enable header
        pdfConverter.PdfHeaderOptions.ShowHeader = true;
        pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
        pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;

        // Enable footer with page numbers
        pdfConverter.PdfFooterOptions.ShowFooter = true;
        pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
        pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;

        // Convert HTML file to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");

        // Save to file
        System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);

        Console.WriteLine("PDF with headers and footers created successfully!");
    }
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Enable header
        pdfConverter.PdfHeaderOptions.ShowHeader = true;
        pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
        pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;

        // Enable footer with page numbers
        pdfConverter.PdfFooterOptions.ShowFooter = true;
        pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
        pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;

        // Convert HTML file to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");

        // Save to file
        System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);

        Console.WriteLine("PDF with headers and footers created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Configure header
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Document Header",
            DrawDividerLine = true
        };

        // Configure footer with page numbers
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true
        };

        // Convert HTML file to PDF
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");

        // Save to file
        pdf.SaveAs("output-with-header-footer.pdf");

        Console.WriteLine("PDF with headers and footers created successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Configure header
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Document Header",
            DrawDividerLine = true
        };

        // Configure footer with page numbers
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true
        };

        // Convert HTML file to PDF
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");

        // Save to file
        pdf.SaveAs("output-with-header-footer.pdf");

        Console.WriteLine("PDF with headers and footers created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Expert PDFは、ブーリアンフラグ(ShowHeader = true)でヘッダー/フッターを有効にする必要があり、&p;&P;トークンでそれぞれ現在のページと総ページを表すテキストベースの設定を使用します。 IronPDFは位置固有のプロパティ(CenterText, RightText)と{page} / {total-pages}プレースホルダーを持つTextHeaderFooterオブジェクトを使用します。 IronPDFはDrawDividerLineも提供し、視覚的に分離します。

完全なHTMLコントロールのために、IronPDFはHtmlHeaderFooterもサポートしており、ヘッダーとフッターで完全なHTML/CSSスタイリングを可能にしています。

メソッド マッピング リファレンス

Expert PDFの移行を評価したり、機能を比較したりする開発者のために、このマッピングは同等の操作を示しています:

コア クラス マッピング

エキスパートPDFIronPDFノート
<コード>PdfConverter</コード<コード>ChromePdfRenderer</コード主な変換クラス
<コード>PdfDocumentOptions</コード<コード>ChromePdfRenderOptions</コードRenderingOptions経由
<コード>PdfSecurityOptions</コード<コード>PdfDocument.SecuritySettings</コード
<コード>PdfHeaderOptions</コードHtmlHeaderFooterまたはTextHeaderFooter
<コード>PdfFooterOptions</コードHtmlHeaderFooterまたはTextHeaderFooter
<コード>PDFMerge</コードPdfDocument.Merge()を使用してください。静的メソッド

メソッドマッピング

エキスパートPDFIronPDFノート
pdfConverter.GetPdfBytesFromHtmlString(html).renderer.RenderHtmlAsPdf(html).BinaryData
pdfConverter.GetPdfBytesFromUrl(url).renderer.RenderUrlAsPdf(url).BinaryData
pdfConverter.GetPdfBytesFromHtmlFile(パス)renderer.RenderHtmlFileAsPdf(path).BinaryData
pdfConverter.SavePdfFromUrlToFile(url, path).renderer.RenderUrlAsPdf(url).SaveAs(path)を実行します。2ステップ

コンフィギュレーション マッピング

エキスパートPDFIronPDFノート
PdfDocumentOptions.PdfPageSize=PdfPageSize.A4RenderingOptions.PaperSize=PdfPaperSize.A4
PdfDocumentOptions.PdfPageOrientation=PortraitRenderingOptions.PaperOrientation=PdfPaperOrientation.Portrait
PdfDocumentOptions.MarginTopRenderingOptions.MarginTop同じプロパティ名
pdfConverter.LicenseKey = "...".IronPdf.License.LicenseKey = "...".グローバル、1回設定

ページ番号トークン

エキスパートPDFIronPDF
&p; (現在のページ)<コード>{ページ}</コード
&P;(総ページ数)<コード>{総ページ数}</コード

機能比較の概要

フィーチャーエキスパートPDFIronPDF
HTMLからPDFへ
URLからPDFへ
HTMLファイルからPDFへ
ヘッダー/フッター✅ (テキストベース)✅ (HTMLまたはテキスト)
ページ番号✅ (&p;/&P;)✅ (<コード>{ページ}</コード>/<コード>{総ページ数}</コード>)
PDFマージ✅ (別パッケージ)✅ (含まれる)
PDFセキュリティ✅ (別パッケージ)✅ (含まれる)
PDF分割✅ (別パッケージ)✅ (含まれる)
PDFから画像へ✅ (別パッケージ)✅ (含まれる)
CSS3 フレックスボックス/グリッド❌ (限定)✅ (フルサポート)
クロスプラットフォーム制限的フルサポート

チームがエキスパートPDFからIronPDFへの移行を検討するとき

開発チームはいくつかの理由からExpert PDFからIronPDFへの移行を評価しています:

ドキュメンテーションの通貨: Expert PDFのドキュメンテーションは2018年以来凍結されています。 最新の情報、例、ベストプラクティスを求めているチームは、IronPDFの継続的に更新されるドキュメントが最新の開発ワークフローに適していることに気づくでしょう。

最新のCSSレンダリング: Expert PDFは、最新のCSS3機能(Flexbox、Grid、CSS Variables)を正しくレンダリングできない可能性のある、レガシーなChromeバージョンに依存しています。 IronPDFの最新のChromiumエンジンは、現代的なウェブデザインの正確なレンダリングを保証します。

パッケージの統合: Expert PDFの断片化された製品群(HtmlToPdf、PDFMerge、PDFSecurity、PDFSplit、PdfToImage)には複数のライセンスが必要です。 IronPdfは同等のすべての機能を単一のNuGetパッケージに統合し、依存関係の管理を簡素化し、ライセンスの複雑さを軽減します。

価格対価値評価:1ライセンスあたり550~1,200ドルで、Expert PDFは時代遅れのレンダリング技術を提供しながら、プレミアム価格を請求しています。 チームは、提供されるレガシー技術に見合ったコストかどうかを評価します。

最新の.NETサポート:.NET 6/7/8/9+をターゲットとするアプリケーションは、Expert PDFの限られた最新の.NETサポートに対して、IronPDFのネイティブサポートと完全な非同期/待ち受けパターンから恩恵を受けます。

更新頻度: Expert PDFの更新頻度の低さは、IronPDFの毎月のリリースとは対照的です。

長所と考慮点

エキスパートPDFの強み

  • HTML5サポート:基本的なHTML5レンダリング機能
  • 確立されたライブラリ:本番環境で実証済み
  • おなじみのAPI: ストレートなPdfConverterパターン

エキスパートPDFの考察

  • ドキュメント凍結:2018年以降更新なし
  • レガシーレンダリング:古い Chrome バージョンでは CSS3 サポートが制限されます。
  • 断片化された製品: 別々のパッケージとライセンスが必要です。
  • プレミアム価格:レガシー技術向け550~1,200ドル
  • Limited Modern .NET:現在の.NETバージョンより遅れている
  • 頻繁な更新: セキュリティと機能の更新はまばらです。

IronPDFの強み

  • モダンレンダリング:ピクセルパーフェクトな出力のための最新のChromiumエンジン
  • オールインワンパッケージ:PDF生成、マージ、セキュリティ、抽出を1つのNuGetで。
  • 積極的な開発:新機能とセキュリティパッチを含む毎月のアップデート
  • より良いドキュメント:包括的なチュートリアルと例題。
  • 真のクロスプラットフォーム:Windows、Linux、macOS、Dockerサポート
  • 最新の.NET:.NET 6/7/8/9+のネイティブサポート
  • 完全な非同期サポート:全体を通して最新の非同期/待機パターン

IronPDFについての考察

  • 2ステップ保存:レンダリングはPdfDocumentを返し、次にSaveAs()を呼び出します (柔軟性を提供します)。
  • 異なるプレースホルダ&p;の代わりに{page}構文を使用します。

結論

Expert PDFとIronPDFはどちらも.NET開発者のためにHTMLからPDFへの変換を提供しますが、技術的なタイムラインは異なります。Expert PDFは確立された機能を提供するが、2018年以降凍結されたドキュメント、CSS3サポートを制限するレガシーなChromeレンダリングエンジン、複数のライセンスを必要とする断片的な製品モデルを抱えている。

IronPdfは最新のChromiumレンダリング、毎月の継続的なアップデート、包括的なドキュメント、機能を統合したオールインワンパッケージなど、最新の選択肢を提供します。 最新のCSS3サポート、アクティブなメンテナンス、クロスプラットフォーム展開を必要とするチームにとって、IronPdfはこれらの特定の要件に対応します。

組織が.NET 10、C# 14、2026年までのアプリケーション開発を計画する中で、その選択は特定の優先順位によって決まります。 Expert PDFの実装やシンプルなHTMLレイアウトを確立しているチームは、引き続き適切な結果を見つけることができるでしょう。 最新のウェブデザイン、積極的なセキュリティパッチ、統合ライセンスには、IronPDFがより適切なアプローチを提供します。

無料トライアルでIronPDFの評価を開始し、包括的なドキュメントを参照して、特定の要件への適合性を評価してください。