比較

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

.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 クラスを使用し、さまざまな変換シナリオに GetPdfBytesFromHtmlFile() などのメソッドを提供します。 ライブラリは、コンバーターの PdfHeaderOptions、および PdfFooterOptions プロパティを通じて構成を整理します。

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環境での真のクロスプラットフォーム互換性で、徹底したドキュメントを提供します。

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

これら for .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!");
    }
}
$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!");
    }
}
$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!");
    }
}
$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!");
    }
}
$vbLabelText   $csharpLabel

どちらのライブラリも、ページサイズと向きの設定を提供します。エキスパートPDFでは PdfDocumentOptions.PdfPageSizePdfDocumentOptions.PdfPageOrientation が使用され、 IronPDFでは RenderingOptions.PaperSizeRenderingOptions.PaperOrientation が使用されます。 ネーミングは同様のパターンに従いますが、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!");
    }
}
$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!");
    }
}
$vbLabelText   $csharpLabel

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

完全な HTML 制御のために、IronPDFはヘッダーとフッターで完全な HTML/CSS スタイル設定を可能にする HtmlHeaderFooter もサポートしています。

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

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

コア クラス マッピング

エキスパートPDFIronPDF
PdfConverterChromePdfRenderer
PdfDocumentOptionsChromePdfRenderOptions
PdfSecurityOptionsPdfDocument.SecuritySettings
PdfHeaderOptionsHtmlHeaderFooter または TextHeaderFooter
PdfFooterOptionsHtmlHeaderFooter または TextHeaderFooter
PDFMergePdfDocument.Merge()

メソッドマッピング

エキスパートPDFIronPDF
pdfConverter.GetPdfBytesFromHtmlString(html)renderer.RenderHtmlAsPdf(html).BinaryData
pdfConverter.GetPdfBytesFromUrl(url)renderer.RenderUrlAsPdf(url).BinaryData
pdfConverter.GetPdfBytesFromHtmlFile(path)renderer.RenderHtmlFileAsPdf(path).BinaryData
pdfConverter.SavePdfFromUrlToFile(url, path)renderer.RenderUrlAsPdf(url).SaveAs(path)

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

エキスパートPDFIronPDF
PdfDocumentOptions.PdfPageSize = PdfPageSize.A4RenderingOptions.PaperSize = PdfPaperSize.A4
PdfDocumentOptions.PdfPageOrientation = PortraitRenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
PdfDocumentOptions.MarginTopRenderingOptions.MarginTop
pdfConverter.LicenseKey = "..."IronPdf.License.LicenseKey = "..."

ページ番号トークン

エキスパートPDFIronPDF
&p; (現在のページ){page}
&P; (総ページ数){total-pages}

機能比較の概要

フィーチャーエキスパートPDFIronPDF
HTMLからPDFへ
URLからPDFへ
HTMLファイルからPDFへ
ヘッダー/フッター✅ (テキストベース)✅ (HTMLまたはテキスト)
ページ番号✅(&P;)✅({total-pages})
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は、時代遅れのレンダリング技術を提供する一方で、プレミアム価格を請求しています。 チームは、提供されるレガシー技術に見合ったコストかどうかを評価します。

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

更新頻度: Expert PDFの更新頻度はIronPDFの毎月のリリースとは対照的で、機能の可用性とセキュリティパッチの適時性の両方に影響を与えます。

長所と考慮点

エキスパートPDFの強み

  • HTML5サポート: 基本的なHTML5レンダリング機能
  • 確立されたライブラリ: 実稼働環境で実績がある。 -使い慣れた API:わかりやすい PdfConverter パターン

エキスパートPDFの考察

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

IronPDFの強み

  • 最新のレンダリング: ピクセルパーフェクトな出力のための最新のChromiumエンジン。
  • オールインワンパッケージ: PDF生成、マージ、セキュリティ、抽出を1つのNuGetで。
  • 積極的な開発: 新機能やセキュリティパッチを含む毎月のアップデート
  • より良いドキュメント: 包括的なチュートリアルと例題。
  • 真のクロスプラットフォーム: Windows、Linux、macOS、Dockerサポート
  • 最新 for .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の評価を開始し、包括的なドキュメントを参照して、特定の要件への適合性を評価してください。