比較

PdfPig vs IronPDF:技術比較ガイド

PdfPigvs IronPDF:PDF読み取りライブラリ vs .NETの完全なPDFソリューション

.NET開発者がPDFファイルを扱う場合、PDF文書の読み取り、抽出、生成などの複雑なタスクを処理するライブラリを求めることがよくあります。 利用可能な選択肢の中で、pdfpigは、主にPDFからのコンテンツの読み取りと抽出に特化したツールとして、その地位を確立しています。 この比較では、IronPDFとpdfpigを比較し、アーキテクチャの違い、機能の完全性、異なるアプリケーション要件への適合性を分析します。

PdfPigとは何ですか?

PdfPigは、C#用に特別に設計されたオープンソースのPDF読み取り・抽出ライブラリです。 このライブラリは、開発者がPDFコンテンツに正確にアクセスすることを可能にし、PDFファイルからテキスト、画像、フォームデータ、メタデータを抽出するためのツールを提供します。 Apache 2.0ライセンスのもとでライセンスされているpdfpigは、オープンソースであると同時にビジネスフレンドリーでもあり、プロプライエタリなアプリケーションの一部としてソフトウェアを変更したり配布したりする自由を提供します。

pdfpigは抽出機能に優れていますが、その範囲は基本的に既存の文書の解析に限られています。 ライブラリは、HTML、URL、プログラムからPDFを作成することはできません。

pdfpigの主な特徴は以下の通りです:

  • 読み取り専用:PDFの解析と抽出のために特別に設計されています。
  • オープンソース:ライセンス費用なしのApache 2.0ライセンス
  • 位置データによるテキスト抽出:位置データを含むテキストを正確に抽出し、文字フォントを綿密に処理します。
  • 単語レベル分析:レイアウト分析のための単語バウンディングボックスを提供します。
  • 純粋な.NET:ネイティブの依存関係がなく、.NETが動作する場所であればどこでも動作します。
  • 1-ベース・ページ・インデックス:ページは1ベースのインデックスを使用してアクセスされます。

IronPDFとは何ですか?

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

IronPDFはpdfpigの読み込み専用とは異なり、PDFの生成と抽出の両方をサポートし、PDF関連の様々なタスクに柔軟に対応します。 このライブラリは、HTMLやURLからの作成、テキスト抽出、文書操作、マージ、透かし、セキュリティ機能、電子署名など、すべてを1つのライブラリ内で処理します。

アーキテクチャの比較

pdfpigとIronPdfの基本的な違いは、そのスコープにあります:読み取り専用か完全なPDFライフサイクル管理かです。

アスペクトPdfPigIronPDF
主な焦点読解/抽出PDFの全ライフサイクル
PDFの作成非常に限定的包括的
HTMLからPDFへサポートされていませんフルChromiumエンジン
URLからPDFへサポートされていませんフルサポート
テキスト抽出優秀優秀
画像抽出はいはい
メタデータアクセスはいはい
PDF操作サポートされていませんマージ、分割、回転
ウォーターマークサポートされていませんフルサポート
セキュリティ/暗号化サポートされていませんフルサポート
フォーム入力サポートされていませんフルサポート
デジタル署名サポートされていませんフルサポート
ページ索引1ベース0ベース
ライセンスアパッチ2.0(無料)商用
サポートコミュニティプロフェッショナル

PDFの読み取りとテキスト抽出のみを必要とするアプリケーションでは、pdfpigは優れた機能を提供します。 IronPDFはPDF生成、ドキュメント操作、あらゆる作成機能を必要とするアプリケーションに完全なソリューションを提供します。

テキスト抽出の比較

テキスト抽出は、API設計に顕著な違いがあるものの、この共通のワークフローにおける両ライブラリの強みを示しています。

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

// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
using System.Text;

class Program
{
    static void Main()
    {
        using (var document = PdfDocument.Open("input.pdf"))
        {
            var text = new StringBuilder();
            foreach (var page in document.GetPages())
            {
                text.AppendLine(page.Text);
            }
            Console.WriteLine(text.ToString());
        }
    }
}
// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
using System.Text;

class Program
{
    static void Main()
    {
        using (var document = PdfDocument.Open("input.pdf"))
        {
            var text = new StringBuilder();
            foreach (var page in document.GetPages())
            {
                text.AppendLine(page.Text);
            }
            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()
    {
        var pdf = PdfDocument.FromFile("input.pdf");
        string text = pdf.ExtractAllText();
        Console.WriteLine(text);
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");
        string text = pdf.ExtractAllText();
        Console.WriteLine(text);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PdfPigは、適切な廃棄のためにusingステートメントを必要とし、GetPages()によってページを反復し、StringBuilderによって手動でテキストを集約します。 page.Textプロパティは、各ページのテキストコンテンツを提供します。

IronPDFのExtractAllText()メソッドは、手動での繰り返しや廃棄パターンを必要とせず、一度の呼び出しですべてのページからすべてのテキストを抽出します。 ページごとの抽出のために、IronPDFはExtractTextFromPage(index)を提供しています。 APIの違いに注意してください: pdfpigはPdfDocument.Open()を使い、IronPDFはPdfDocument.FromFile()を使います。

HTMLからPDFへの変換

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

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

//PdfPigdoes not support HTML to PDF conversion
//PdfPigis a PDF reading/parsing library, not a PDF generation library
// You would need to use a different library for HTML to PDF conversion
//PdfPigdoes not support HTML to PDF conversion
//PdfPigis a PDF reading/parsing library, not a PDF generation library
// You would need to use a different library for HTML to PDF conversion
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML</p>");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML</p>");
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PdfPigはHTMLからPDFを作成することはできません。 このライブラリは、既存のPDF文書の読み取りと解析専用に設計されており、新しいPDF文書を生成することはできません。

IronPDFのChromePdfRendererは最新のChromiumエンジンを使ってHTMLコンテンツを変換し、CSS3とJavaScriptを完全にサポートします。 HTMLからPDFへの変換パターンに関する詳しいガイダンスについては、HTML to PDF tutorialをご覧ください。

PDFメタデータアクセス

PDFのメタデータを読むと、異なるAPIパターンで同様の機能があることがわかります。

PdfPigメタデータの読み方:

// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;

class Program
{
    static void Main()
    {
        using (var document = PdfDocument.Open("input.pdf"))
        {
            var info = document.Information;
            Console.WriteLine($"Title: {info.Title}");
            Console.WriteLine($"Author: {info.Author}");
            Console.WriteLine($"Subject: {info.Subject}");
            Console.WriteLine($"Creator: {info.Creator}");
            Console.WriteLine($"Producer: {info.Producer}");
            Console.WriteLine($"Number of Pages: {document.NumberOfPages}");
        }
    }
}
// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;

class Program
{
    static void Main()
    {
        using (var document = PdfDocument.Open("input.pdf"))
        {
            var info = document.Information;
            Console.WriteLine($"Title: {info.Title}");
            Console.WriteLine($"Author: {info.Author}");
            Console.WriteLine($"Subject: {info.Subject}");
            Console.WriteLine($"Creator: {info.Creator}");
            Console.WriteLine($"Producer: {info.Producer}");
            Console.WriteLine($"Number of Pages: {document.NumberOfPages}");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFメタデータの読み取り:

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

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");
        var info = pdf.MetaData;
        Console.WriteLine($"Title: {info.Title}");
        Console.WriteLine($"Author: {info.Author}");
        Console.WriteLine($"Subject: {info.Subject}");
        Console.WriteLine($"Creator: {info.Creator}");
        Console.WriteLine($"Producer: {info.Producer}");
        Console.WriteLine($"Number of Pages: {pdf.PageCount}");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");
        var info = pdf.MetaData;
        Console.WriteLine($"Title: {info.Title}");
        Console.WriteLine($"Author: {info.Author}");
        Console.WriteLine($"Subject: {info.Subject}");
        Console.WriteLine($"Creator: {info.Creator}");
        Console.WriteLine($"Producer: {info.Producer}");
        Console.WriteLine($"Number of Pages: {pdf.PageCount}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

どちらのライブラリも、標準的なPDFメタデータプロパティへのアクセスを提供します。 PdfPigはdocument.Informationを使用し、IronPDFはpdf.MetaDataを使用します。 ページカウントは、pdfpigではdocument.NumberOfPagesでアクセスされ、IronPDFではpdf.PageCountでアクセスされます。

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

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

ドキュメントの読み込み

PdfPigIronPDFノート
PdfDocument.Open(パス)PdfDocument.FromFile(パス)ファイルから読み込む
PdfDocument.Open(bytes).<コード>PdfDocument.FromBinaryData(bytes)</コード><コード>PdfDocument.FromBinaryData(bytes)バイトから読み込む
PdfDocument.Open(stream)を実行します。<コード>PdfDocument.FromStream(stream)</コード><コード>PdfDocument.FromStream(stream)ストリームから読み込む
using (var doc = ...).var pdf = ...IronPDFを使用する必要はありません。

ページへのアクセス

PdfPigIronPDFノート
<コード>ドキュメント.ページ数</コード<コード>pdf.PageCount</コード総ページ数
document.GetPages()<コード>pdf.Pages</コードページコレクション
<コード>document.GetPage(1)</コード<コード>pdf.Pages[0]</コード最初のページ(1ベース対0ベース)
<コード>ページ.テキスト</コードpdf.Pages[i].Textページテキスト
<コード>page.GetWords()</コードpdf.ExtractTextFromPage(i)のようにします。テキスト抽出

メタデータ

PdfPigIronPDFノート
ドキュメント.情報.タイトル<コード>pdf.MetaData.Title</コード文書タイトル
<コード>ドキュメント.情報.作成者</コード<コード>pdf.MetaData.Author</コード著者
ドキュメント.情報.件名<コード>pdf.MetaData.Subject</コード対象
ドキュメント.インフォメーション.クリエーター<コード>pdf.MetaData.Creator</コードクリエイター
<コード>ドキュメント.情報.プロデューサー</コード<コード>pdf.MetaData.Producer</コードプロデューサー

PdfPigで利用できない機能

IronPDFの特徴翻訳内容
renderer.RenderHtmlAsPdf(html).HTMLからPDFを作成
renderer.RenderUrlAsPdf(url)のようにします。URLからPDFを作成
PdfDocument.Merge(pdfs).複数のPDFを結合
pdf.CopyPages(start, end).特定のページを抜粋
pdf.ApplyWatermark(html).透かしの追加
pdf.SecuritySettings.UserPasswordパスワード保護
<コード>pdf.Sign(証明書)</コードデジタル署名
pdf.Form.GetFieldByName(name).Valueフォーム入力

IronPDFのこれらの追加機能は、読み取りだけでなく、完全なPDFライフサイクル管理を提供します。 PDF操作機能については、PDFのマージと分割ガイドを参照してください。

ページ インデックスの違い

pdfpigは1ベースのページインデックスを使用し、IronPDFは0ベースのインデックスを使用しています。

PdfPigページへのアクセス:

// PdfPig:1ベースindexing
var firstPage = document.GetPage(1);  // First page
var secondPage = document.GetPage(2); // Second page
// PdfPig:1ベースindexing
var firstPage = document.GetPage(1);  // First page
var secondPage = document.GetPage(2); // Second page
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFページへのアクセス:

// IronPDF:0ベースindexing
var firstPage = pdf.Pages[0];  // First page
var secondPage = pdf.Pages[1]; // Second page
// IronPDF:0ベースindexing
var firstPage = pdf.Pages[0];  // First page
var secondPage = pdf.Pages[1]; // Second page
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

この違いは、特定のページを参照するコードを移行する際に慎重な注意を必要とします。

単語の位置データ

pdfpigが明らかに優れている点は、単語レベルの位置データを提供できることです。

PdfPigのワードポジション:

using (var document = PdfDocument.Open("input.pdf"))
{
    foreach (var page in document.GetPages())
    {
        var words = page.GetWords();
        foreach (var word in words)
        {
            //PdfPigprovides bounding box coordinates
            Console.WriteLine($"Word: '{word.Text}' at ({word.BoundingBox.Left}, {word.BoundingBox.Top})");
        }
    }
}
using (var document = PdfDocument.Open("input.pdf"))
{
    foreach (var page in document.GetPages())
    {
        var words = page.GetWords();
        foreach (var word in words)
        {
            //PdfPigprovides bounding box coordinates
            Console.WriteLine($"Word: '{word.Text}' at ({word.BoundingBox.Left}, {word.BoundingBox.Top})");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PdfPigのword.BoundingBoxは、各単語の正確な位置データを提供し、レイアウト分析、表検出、文書構造の理解を可能にします。 IronPDFは位置データなしでテキストを抽出します。単語レベルの座標が不可欠な場合は、両方のライブラリを使用したハイブリッドアプローチを検討してください。

廃棄パターンの違い

ライブラリはメモリ管理要件が異なります。

PdfPigの処分(必須):

//PdfPigrequires using statement for proper disposal
using (var document = PdfDocument.Open("input.pdf"))
{
    // Work with document
}
//PdfPigrequires using statement for proper disposal
using (var document = PdfDocument.Open("input.pdf"))
{
    // Work with document
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFの処分(オプション):

//IronPDFを使用する必要はありません。statement
var pdf = PdfDocument.FromFile("input.pdf");
// Work with pdf
// Dispose optional: pdf.Dispose();
//IronPDFを使用する必要はありません。statement
var pdf = PdfDocument.FromFile("input.pdf");
// Work with pdf
// Dispose optional: pdf.Dispose();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PdfPigは適切なリソースのクリーンアップのためにusingパターンを必要とします。IronPDFのPdfDocumentは明示的な廃棄を必要としませんが、必要に応じて廃棄することができます。

機能比較の概要

pdfpigとIronPDFの違いは、PDFの読み取り以外のほぼ全ての操作に及びます。

フィーチャーPdfPigIronPDF
ライセンスオープンソース(Apache 2.0)商用
PDFの読み取り/抽出優秀優秀
PDFジェネレーション制限的包括的
HTMLからPDFへサポート対象外サポート対象
URLからPDFへサポート対象外サポート対象
PDFをマージするサポート対象外サポート対象
PDFを分割するサポート対象外サポート対象
ウォーターマークサポート対象外サポート対象
パスワード保護サポート対象外サポート対象
デジタル署名サポート対象外サポート対象
フォーム入力サポート対象外サポート対象
ワードポジションデータサポート対象サポート対象外
サポートとドキュメンテーションコミュニティサポート専用サポート
費用無料有料

透かし、PDFマージ、セキュリティ機能を必要とするアプリケーションは、pdfpigだけでは実現できません。

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

チームがIronPDFをpdfpigの代替または補完として評価するのにはいくつかの要因があります:

PDF作成の要件:PdfPigはHTML、URL、プログラムからPDFを作成することはできません。 ウェブコンテンツやテンプレートからPDFを生成する必要があるアプリケーションには、追加のライブラリ、またはIronPDFの完全なソリューションが必要です。

ドキュメント操作の必要性:PdfPigはPDFの結合、分割、修正はできません。 ドキュメントの組み立てや変更を必要とするアプリケーションはIronPDFの操作機能を必要とします。

セキュリティ要件:PdfPigはパスワード、暗号化、デジタル署名を追加できません。 セキュリティが要求されるアプリケーションにはIronPdfのセキュリティ機能が必要です。

透かしとブランディング:PdfPigは既存の文書にビジュアルオーバーレイを追加することはできません。 ドキュメントのブランディングを必要とするアプリケーションには、IronPDFの透かし機能が必要です。

プロフェッショナルなサポート:PdfPig はコミュニティのサポートに依存しています。 保証されたレスポンスタイムとプロフェッショナルな支援を必要とする組織は、IronPDFの商用サポートをご利用いただけます。

ハイブリッドアプローチ:単語の位置を含む詳細なテキスト解析にIronPdfと、生成と操作にIronPdfの両方のライブラリを使うチームもあります。 このアプローチでは、各ライブラリの強みを活用します。

インストールの比較

PdfPigのインストール:

Install-Package PdfPig
Install-Package PdfPig
SHELL

ネイティブ依存のない純粋な.NET。

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

IronPDFの最初の実行はChromiumレンダリングエンジンをダウンロードします(~150MBワンタイム)。 Linuxのデプロイには、追加の依存関係が必要です。 このライブラリは、.NET Framework、.NET Core、.NET 5+、および.NET 10とC# 14への前方互換性をサポートしています。

決定する

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

PdfPigをご検討ください:主なニーズは確かな抽出と読み取り機能であり、レイアウト分析のために単語レベルの位置データが必要であり、オープンソースライセンスで費用対効果の高いソリューションが必要であり、PDFの生成や操作は必要ありません。

以下のような場合にIronPDFをご検討ください: HTMLからPDFへの変換を含む包括的なPDFライフサイクルサポートが必要な場合、プロジェクトでPDFの作成と編集機能が必要な場合、ドキュメントの操作(結合、分割、透かし)が必要な場合、セキュリティ機能(パスワード、暗号化、署名)が必要な場合、商用ライセンスに裏打ちされたプロのサポートが必要な場合。

両方を考慮する:PDF生成による高度なテキスト分析には、pdfpigのワードポジション機能とIronPDFの作成・操作機能を活用したハイブリッドアプローチがあります。

IronPDFを始めよう

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

1.NuGet経由でインストールします:IronPdfをインストールします。 2.使い始めのドキュメントを確認してください。 3.作成パターンについては、HTML to PDF チュートリアルを参照してください。 4.完全なメソッドのドキュメントについては、APIリファレンスを確認してください。

IronPDFチュートリアルは、基本的な変換から高度なPDF操作まで、一般的なシナリオをカバーする包括的な例を提供します。

結論

PdfPigとIronPDFは.NET PDFエコシステムにおいて基本的に異なる目的を果たします。 PdfPigはPDFの読み取りとテキスト抽出に優れており、ドキュメントを正確に解析し、レイアウト分析のために単語レベルの位置データを提供します。 IronPDFは単一のライブラリで作成、抽出、操作、セキュリティをカバーする完全なPDFソリューションを提供します。

PDFの読み取りだけを必要とするアプリケーションには、オープンソースライセンスを使用したpdfpigの集中的なアプローチが適切かもしれません。 PDFの生成、ドキュメントの操作、読み込み以外の作成機能を必要とするアプリケーションに対して、IronPDFは追加のライブラリを必要とせずにこれらの機能をネイティブに提供します。

この決定は、現在の要件だけでなく、予想されるニーズにも及びます。 pdfpigが読み取りと抽出の領域で優れているのに対し、IronPDFは汎用性と包括的なPDF管理で優れています。 多くの組織は、最初は読み取りの要件から始めますが、生成や操作の要件に拡張していくため、最初からIronPDFを選択することで、プロフェッショナルなサポートと積極的な開発を保証しながら、これらの拡張要件に対応する基盤を提供します。

これらのライブラリのいずれかを選択する際には、現在および予測されるPDF要件全体を評価してください。 pdfpigの読み取り専用という性質は、アプリケーションの成熟と要件の拡大に伴って明らかになる能力の境界を生み出します。