比較

PdfiumとIronPDFの比較:技術比較ガイド

Pdfium vs IronPDF:PDFレンダラと.NETの完全なPDFソリューションの比較

.NET開発者がPDF機能を必要とする場合、GoogleのPDFiumレンダリングエンジンの.NETラッパーであるPdfium.NET(またはPdfiumViewer)に遭遇することがよくあります。この比較では、PdfiumとIronPDFを比較し、アーキテクチャの違い、機能の完全性、最新のアプリケーション要件への適合性を分析します。

Pdfiumとは何ですか?

Pdfium.NETは、もともとChromium用に開発されたGoogleのPDFiumライブラリの.NETラッパーです。 このライブラリは、.NETアプリケーションでPDFドキュメントを忠実に表示するPDFレンダリングに優れています。 PDFの表示、テキストの抽出、ページの画像へのレンダリング機能を提供します。

しかし、Pdfiumの機能は、レンダリングに特化したアーキテクチャによって基本的に制限されています。 このライブラリはPDFを表示するように設計されており、PDFを作成したり操作したりするものではありません。 このため、PDFの生成、ドキュメントのマージ、コンテンツの修正が必要なアプリケーションでは、大きなギャップが生じます。

Pdfium.NETの主な特徴は以下のとおりです:

  • 表示とレンダリングの焦点: PDFコンテンツを忠実に表示することに優れています。
  • パフォーマンス:効率的なレンダリングのためにGoogleのPDFiumを活用しています。
  • ネイティブバイナリ依存:プラットフォーム固有のPDFiumバイナリが必要です(x86/x64)
  • 展開の複雑さ:プラットフォームごとにネイティブ DLL をバンドルし、管理する必要があります。

IronPDFとは何ですか?

IronPDFは、完全なPDFライフサイクル管理を提供する包括的な.NETライブラリです。 ChromePdfRendererクラスは、最新のChromiumベースのエンジンを使ってHTML、CSS、JavaScriptからPDFを作成し、PdfDocumentクラスは広範な操作機能を提供します。

Pdfiumのレンダリングのみにフォーカスしたものとは異なり、IronPdfはPDFの作成、操作、マージ、透かし、セキュリティ、テキスト抽出を一つのライブラリ内で行います。 フルマネージドアーキテクチャにより、ネイティブバイナリの依存性が排除され、プラットフォーム間のデプロイが簡素化されます。

アーキテクチャの比較

PdfiumとIronPDFの基本的な違いは、レンダリングのみと完全なPDFソリューションというスコープにあります。

アスペクトPdfium.NETIronPDF
主な焦点レンダリング/ビューイング完全なPDFソリューション
PDFの作成(HTML, URL, 画像)
PDF操作マージ、分割、編集
HTMLからPDFへChromium エンジン
ウォーターマーク
ヘッダー/フッター
フォーム入力
セキュリティ
ネイティブの依存関係必須なし(フルマネージド)
クロスプラットフォーム複雑なセットアップ自動翻訳

PDFの閲覧のみを必要とするアプリケーションには、Pdfiumで十分かもしれません。PDFの生成、操作、作成機能を必要とするアプリケーションには、IronPDFが完全なソリューションを提供します。

HTMLからPDFへの変換

HTMLからPDFへの変換は、これらのライブラリ間の基本的な能力差を示しています。

PdfiumのHTMLからPDFへのアプローチ:

// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;

// Note: PdfiumViewer is primarily for viewing/rendering PDFs, not creating them from HTML
// For HTML to PDF with Pdfium.NET, you would need additional libraries
// This example shows a limitation of Pdfium.NET
class Program
{
    static void Main()
    {
        // Pdfium.NET does not have native HTML to PDF conversion
        // You would need to use a separate library to convert HTML to PDF
        // then use Pdfium for manipulation
        string htmlContent = "<h1>Hello World</h1>";

        // This functionality is not directly available in Pdfium.NET
        Console.WriteLine("HTML to PDF conversion not natively supported in Pdfium.NET");
    }
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;

// Note: PdfiumViewer is primarily for viewing/rendering PDFs, not creating them from HTML
// For HTML to PDF with Pdfium.NET, you would need additional libraries
// This example shows a limitation of Pdfium.NET
class Program
{
    static void Main()
    {
        // Pdfium.NET does not have native HTML to PDF conversion
        // You would need to use a separate library to convert HTML to PDF
        // then use Pdfium for manipulation
        string htmlContent = "<h1>Hello World</h1>";

        // This functionality is not directly available in Pdfium.NET
        Console.WriteLine("HTML to PDF conversion not natively supported in Pdfium.NET");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFのHTMLからPDFへのアプローチ:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlContent = "<h1>Hello World</h1>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlContent = "<h1>Hello World</h1>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");

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

PdfiumはHTMLからPDFを作成することはできません。 HTMLからPDFへの変換を必要とするアプリケーションでは、IronPdfiumを追加のライブラリと組み合わせる必要があり、複雑さと潜在的な互換性の問題が生じます。

IronPDFのChromePdfRendererは最新のChromiumエンジンを使用して、CSS3、Flexbox、Grid、JavaScriptの実行を完全にサポートしたHTMLコンテンツを変換し、ウェブコンテンツから忠実度の高いPDF出力を生成します。

PDFマージ

文書のマージは、もう1つの大きな能力ギャップを示しています。

Pdfiumマージアプローチ:

// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Collections.Generic;

// Note: PdfiumViewer does not have native PDF merging functionality
// You would need to use additional libraries or implement custom logic
class Program
{
    static void Main()
    {
        List<string> pdfFiles = new List<string> 
        { 
            "document1.pdf", 
            "document2.pdf", 
            "document3.pdf" 
        };

        // PdfiumViewer is primarily for rendering/viewing
        // PDF merging is not natively supported
        // You would need to use another library like iTextSharp or PdfSharp

        Console.WriteLine("PDF merging not natively supported in PdfiumViewer");
    }
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Collections.Generic;

// Note: PdfiumViewer does not have native PDF merging functionality
// You would need to use additional libraries or implement custom logic
class Program
{
    static void Main()
    {
        List<string> pdfFiles = new List<string> 
        { 
            "document1.pdf", 
            "document2.pdf", 
            "document3.pdf" 
        };

        // PdfiumViewer is primarily for rendering/viewing
        // PDF merging is not natively supported
        // You would need to use another library like iTextSharp or PdfSharp

        Console.WriteLine("PDF merging not natively supported in PdfiumViewer");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFマージアプローチ:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> pdfFiles = new List<string> 
        { 
            "document1.pdf", 
            "document2.pdf", 
            "document3.pdf" 
        };

        var pdf = PdfDocument.Merge(pdfFiles);
        pdf.SaveAs("merged.pdf");

        Console.WriteLine("PDFs merged successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> pdfFiles = new List<string> 
        { 
            "document1.pdf", 
            "document2.pdf", 
            "document3.pdf" 
        };

        var pdf = PdfDocument.Merge(pdfFiles);
        pdf.SaveAs("merged.pdf");

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

PdfiumはPDFドキュメントをマージすることができません-ライブラリはこの機能を完全に欠いています。 PDFマージが必要なアプリケーションでは、追加のライブラリが必要になり、依存関係と複雑さが増します。

IronPDFのPdfDocument.Merge()メソッドはファイルパスまたはPdfDocumentオブジェクトのリストを受け入れ、単一のメソッド呼び出しでそれらを単一のドキュメントに結合します。

テキスト抽出

テキスト抽出は、アプローチや機能は異なるものの、両方のライブラリが機能を提供する分野の1つです。

Pdfiumテキスト抽出アプローチ:

// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Text;

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";

        using (var document = PdfDocument.Load(pdfPath))
        {
            StringBuilder text = new StringBuilder();

            for (int i = 0; i < document.PageCount; i++)
            {
                // Note: PdfiumViewer has limited text extraction capabilities
                // Text extraction requires additional work with Pdfium.NET
                string pageText = document.GetPdfText(i);
                text.AppendLine(pageText);
            }

            Console.WriteLine(text.ToString());
        }
    }
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Text;

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";

        using (var document = PdfDocument.Load(pdfPath))
        {
            StringBuilder text = new StringBuilder();

            for (int i = 0; i < document.PageCount; i++)
            {
                // Note: PdfiumViewer has limited text extraction capabilities
                // Text extraction requires additional work with Pdfium.NET
                string pageText = document.GetPdfText(i);
                text.AppendLine(pageText);
            }

            Console.WriteLine(text.ToString());
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFテキスト抽出アプローチ:

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

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";

        var pdf = PdfDocument.FromFile(pdfPath);
        string text = pdf.ExtractAllText();

        Console.WriteLine(text);
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";

        var pdf = PdfDocument.FromFile(pdfPath);
        string text = pdf.ExtractAllText();

        Console.WriteLine(text);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Pdfiumは、GetPdfText()によるテキスト抽出を提供するため、手作業によるページの反復とStringBuilderの連結が必要です。 ドキュメントでは、PdfiumViewerには"限定的なテキスト抽出機能"があり、追加作業が必要になる可能性があることを指摘しています。

IronPdfのExtractAllText()メソッドは一回の呼び出しですべてのページからすべてのテキストを抽出し、一般的な使用例に対してよりシンプルなAPIを提供します。 ページごとのアクセスのために、IronPdfはpdf.Pages[index].Textも提供しています。

APIマッピングリファレンス

PdfからIronPDFへの移行を検討しているチームにとって、APIマッピングを理解することは労力を見積もるのに役立ちます。

ドキュメントの読み込み

Pdfium.NETIronPDFノート
PdfDocument.Load(パス)PdfDocument.FromFile(パス)ファイルから読み込む
PdfDocument.Load(stream)を実行します。<コード>PdfDocument.FromStream(stream)</コード><コード>PdfDocument.FromStream(stream)ストリームから読み込む
<コード>document.PageCount</コード<コード>document.PageCount</コード同じ
ドキュメント.ページ[インデックス]ドキュメント.ページ[インデックス]ゼロベース

テキスト抽出

Pdfium.NETIronPDFノート
document.GetPdfText(pageIndex)ドキュメント.ページ[index].テキストページあたり
(マニュアルループ)document.ExtractAllText()を実行します。全ページ一括

ドキュメントの保存

Pdfium.NETIronPDFノート
document.Save(パス)を実行します。document.SaveAs(path)を実行します。異なるメソッド名
(利用できません)<コード>document.BinaryData</コードバイト

Pdfiumでは利用できない機能

IronPDFの特徴翻訳内容
ChromePdfRenderer.RenderHtmlAsPdf()のようになります。HTMLからPDFを作成
ChromePdfRenderer.RenderUrlAsPdf()のようにします。URLからPDFを作成
PdfDocument.Merge()を使用してください。複数のPDFを結合
<コード>pdf.CopyPages()</コード特定のページを抜粋
<コード>pdf.ApplyWatermark()</コード></コード透かしの追加
<コード>pdf.SecuritySettings</コードパスワード保護
pdf.SignWithDigitalSignature()を使用してください。デジタル署名

ネイティブ バイナリ依存関係

アーキテクチャ上の大きな違いは、依存関係の管理にあります。

Pdfiumのデプロイ構造:

MyApp/
├── bin/
│ ├──MyApp.dll
│ ├──Pdfium.NET.dll
│ ├── x86/
│ └── pdfium.dll
│ └── x64/
└─ pdfium.dll
ランタイム
│ ├── win-x86/native/
│ └── pdfium.dll
│ └── win-x64/native/
└─ pdfium.dll

IronPDFの展開構造:

MyApp/
├── bin/
│ ├──MyApp.dll
│ └─ IronPdf.dll # 含まれるものすべて

Pdfiumでは、プラットフォーム固有のネイティブバイナリをバンドルして管理する必要があります。 このため、特にクロスプラットフォームのアプリケーションやコンテナ化された環境では、デプロイが複雑になります。 各ターゲットプラットフォームには正しいネイティブDLLが必要であり、アプリケーションは実行時に適切なバージョンを正しくロードする必要があります。

IronPdfのフルマネージドアーキテクチャはこれらの懸念を払拭します。 ライブラリは依存関係を内部的に処理し、Windows、Linux、macOSへの展開を簡素化します。

機能比較の概要

PdfiumとIronPDFの違いは、基本的な閲覧だけでなく、事実上すべてのPDF操作に及びます。

フィーチャーPdfium.NETIronPDF
PDFを読み込む
画像にレンダリング
テキストの抽出基本上級
ページ情報
HTMLから作成
URLから作成
PDFのマージ
PDFの分割
透かしの追加
ヘッダー/フッター
フォーム入力
デジタル署名
パスワード保護
ネイティブの依存関係必須なし
クロスプラットフォーム複雑自動翻訳

透かしヘッダーとフッター、またはセキュリティ設定を必要とするアプリケーションは、IronPdfiumだけでは実現できません。

チームがPdfiumからIronPDFへの移行を検討するとき

チームがIronPdfをPdfiumの代替として評価するのにはいくつかの要因があります:

PDF作成の要件:PdfiumはPDFを作成できません。 HTMLテンプレート、レポート、WebコンテンツからPDFを生成する必要があるアプリケーションには、追加のライブラリが必要です。 IronPdfは最新のChromiumエンジンで完全なPDF作成を提供します。

ドキュメント操作の必要性:PdfiumはPDFコンテンツを結合、分割、修正することはできません。 アプリケーションの成熟に伴い、要件は閲覧だけでなく、ドキュメントのアセンブリ、ページの抽出、コンテンツの修正などへと拡大することがよくあります。

デプロイの簡素化:プラットフォーム間で PDFium のネイティブバイナリを管理することは、ビルドパイプライン、デプロイプロセス、コンテナ化に複雑さを加えます。 IronPdfのマネージドアーキテクチャはこのような複雑さを解消します。

機能拡張:閲覧から始まるアプリケーションでは、電子透かし、セキュリティ設定、またはフォーム入力が必要になることがよくあります。 IronPDFはこれらの機能をネイティブで提供しますが、Pdfiumベースのアプリケーションにこれらの機能を追加するには追加のライブラリが必要です。

クロスプラットフォームの一貫性:Pdfiumでは、ターゲット環境ごとにプラットフォーム固有のバイナリ管理が必要です。 IronPdfのマネージドコードはWindows、Linux、macOSで一貫して動作します。

インストールの比較

Pdfiumのインストール:

Install-Package PdfiumViewer
Install-Package PdfiumViewer
SHELL

Plus ネイティブバイナリの手動管理。

IronPDFのインストール:

Install-Package IronPdf
Install-Package IronPdf
SHELL

IronPdfはアプリケーション起動時にライセンスキーの設定を必要とします:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

どちらのライブラリも.NET Frameworkと最新の.NETバージョンをサポートし、.NET 10とC# 14をターゲットとするアプリケーションとの互換性を保証します。

決定する

PdfiumとIronPdfのどちらを選択するかは、アプリケーションの要件によります:

Pdfiumを検討してみてください: PDFの表示とレンダリングだけが必要で、PDFの作成や操作を必要とせず、ネイティブバイナリの依存関係を管理しやすく、簡単なテキスト抽出が必要な場合。

もし: HTMLやURLからPDFを作成する必要がある、PDFの操作(マージ、分割、透かし)が必要である、ネイティブの依存関係なしに簡素化されたデプロイが必要である、高度な機能(フォーム、セキュリティ、署名)が必要である、またはPDFの要件を拡張するアプリケーションを構築している。

最新のアプリケーションの多くでは、PDFを作成・操作する機能が不可欠です。 Pdfiumはレンダリングのみにフォーカスしているため、追加ライブラリのない包括的なPDFワークフローには不十分です。 IronPDFの完全なソリューションは、すべてのPDF操作に統一されたAPIを提供しながら、ライブラリの組み合わせの必要性を排除します。

IronPDFを始めよう

お客様のPDFニーズにIronPDFを評価する:

1.IronPDF NuGetパッケージをインストールしてください:IronPdfパッケージをインストールしてください。 2.作成パターンについては、HTML to PDFチュートリアルをご覧ください。 3.PDF マージ機能を使用してドキュメントをアセンブルします。 4.チュートリアルセクションで包括的な例を確認してください。

IronPDFドキュメントは、一般的なシナリオのための詳細なガイダンスを提供し、APIリファレンスは、利用可能なすべてのクラスとメソッドを文書化しています。

結論

PdfiumとIronPDFは.NET PDFエコシステムにおいて基本的に異なる目的を果たします。 PdfiumはPDFレンダリングに優れており、GoogleのPDFiumエンジンを使用してドキュメントを忠実に表示します。IronPDFは単一のライブラリで作成、操作、レンダリングをカバーする完全なPDFソリューションを提供します。

PDFの閲覧のみを必要とするアプリケーションには、Pdfiumの集中的なアプローチが適しているかもしれません。 PDFの生成、ドキュメントのマージ、透かし、その他の作成機能を必要とするアプリケーションに対して、IronPDFは追加のライブラリを必要とせず、これらの機能をネイティブで提供します。

この決定は、現在の要件だけでなく、予想されるニーズにも及びます。 アプリケーションは多くの場合、閲覧から始まりますが、作成と操作を必要とするまでに拡大します。 最初からIronPdfを選択することで、Pdfiumがもたらすネイティブのバイナリ管理の複雑さを排除しながら、これらの拡張された要件に対応する基盤を提供します。

これらのライブラリのいずれかを選択する際には、現在および予測されるPDF要件全体を評価してください。 Pdfiumはレンダリング専用であるため、アプリケーションが成熟し要件が拡大するにつれて、アーキテクチャ上の制約が明らかになります。