製品比較

iTextSharpとIronPDFを使用してC#でPDFからテキストを抽出する

イントロダクション

PDFドキュメントからテキストを抽出することは、最新のソフトウェアプロジェクトにおける一般的な要件です。請求書の処理から検索エンジンのためのコンテンツの抽出まで、多様な場面で必要とされています。 開発者は、正確な結果を提供するだけでなく、C# .NETアプリケーションに効率的に統合できる信頼できるライブラリを必要としています。 一部の開発者は、スキャンされた文書や画像からデータを抽出するためにOCR(光学式文字認識)ツールを使用しますが、場合によっては強力なテキスト抽出ツールが必要なことがあります。

しかし、市場にはいくつかのPDFライブラリがあるため、適切なツールを選ぶのは圧倒されることがあります。 会話によく出てくる2つのライブラリは、iTextSharpIronPDF です。 どちらもPDFからテキストを抽出できますが、使いやすさ、サポート、パフォーマンス、価格設定において大きく異なります。 この記事では、テキスト抽出の処理方法を示す異なるコードサンプルを見ながら、2つのライブラリを比較し、どちらがプロジェクトに最適かを決定するのに役立てます。

IronPDFとiTextSharpライブラリの概要

iTextSharpは、長い間、.NET向けの人気のあるオープンソースのPDFライブラリであり、コンテンツを生成、操作、抽出するための強力なツールを提供しています。 これは、JavaベースのiTextのC#ポートとして、PDF構造を深く制御する機能を提供し、上級ユーザーに最適です。 しかし、この柔軟性には急な学習曲線とライセンスの制約が伴います。 商業利用では、AGPL の義務を回避するために有料ライセンスが必要になることがよくあります。

IronPDF を導入—.NET 用に構築された現代的で開発者に優しいPDFライブラリです。 それは、直感的なAPI、明確なドキュメント、迅速なサポートで、テキスト抽出のような一般的なタスクを簡素化します。 このツールを使用すると、開発者はPDFドキュメントから画像やテキストを簡単に抽出でき、新しいPDFファイルを作成したり、PDFのセキュリティを実装したりすることができます。

iTextSharpとは異なり、IronPDFは複雑な低レベルの構造を避け、より迅速かつ効率的に作業できるようにします。 単一のページまたは数百のPDFを処理する場合でも、それは物事をシンプルに保ちます。

それはまた積極的にメンテナンスされており、定期的なアップデートとわかりやすいライセンスモデルが含まれ、無料トライアルやチームと個人開発者のための手頃なプランがあります。

IronPDFのインストールと使用

NuGet NuGetでインストール

PM >  Install-Package IronPdf

IronPDFNuGetでチェックして、すばやくインストールしましょう。1,000万以上のダウンロードを記録しており、C#によるPDF開発を革新しています。 また、DLLまたはWindows インストーラーをダウンロードすることもできます。

IronPDFは、NuGetパッケージマネージャーコンソールで次のコマンドを実行することにより、NuGet経由でインストールすることもできます。

Install-Package IronPdf

パッケージ マネージャー コンソールを使用した IronPDF のインストール

または、ソリューション画面のNuGetパッケージマネージャーを使用してインストールすることもできます。 これを行うには、「ツール > NuGet パッケージ マネージャー > ソリューションの NuGet パッケージの管理」に移動します。

Visual Studio のツールドロップダウンメニュー

次に、IronPDFを検索し、「インストール」をクリックします。

IronPDF NuGet パッケージマネージャー画面

IronPDFでPDFファイルからテキストを抽出する

インストールが完了すると、テキストの抽出は簡単です:

using IronPdf;

var pdf = PdfDocument.FromFile("invoice.pdf");
string extractedText = pdf.ExtractAllText();
Console.WriteLine(extractedText);
using IronPdf;

var pdf = PdfDocument.FromFile("invoice.pdf");
string extractedText = pdf.ExtractAllText();
Console.WriteLine(extractedText);
Imports IronPdf

Private pdf = PdfDocument.FromFile("invoice.pdf")
Private extractedText As String = pdf.ExtractAllText()
Console.WriteLine(extractedText)
$vbLabelText   $csharpLabel

📝 注: このメソッドはPDFファイル全体を読み込み、テキストを読書順に返します。これは従来のライブラリと比較して解析時間を数時間節約できます。

エンコーディング、コンテンツストリーム、手動パースを処理する必要はありません。 IronPDFはそれらすべてを内部で処理し、最小限のセットアップでクリーンで正確な出力を提供します。その後、抽出されたテキストを新しいテキストファイルに簡単に保存して、さらに操作や利用が可能です。

iTextSharp PDFライブラリのインストール

iTextSharpのコアパッケージをPDF生成用にダウンロードするには:

Install-Package iTextSharp
Install-Package iTextSharp
SHELL

NuGet コンソールを通じて iTextSharp をインストールする

ソリューション画面のパッケージマネージャー経由でiTextSharpを利用することもできます。 これを行うには、まずツールのドロップダウンメニューに移動し、「NuGet パッケージ マネージャー > ソリューションの NuGet パッケージの管理」を見つけてください。

Visual Studioのツールドロップダウンメニュー

次に、iTextSharpを検索して、「インストール」をクリックします。

Extract Text From Pdf Csharp Itextsharp 6 related to iTextSharp PDFライブラリのインストール

iTextSharpでPDFドキュメントからテキストを抽出する

こちらは、単一のPDFページからテキストを抽出するサンプルです:

using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Canvas.Parser.Listener;

string path = "sample.pdf";
using (PdfReader reader = new PdfReader(path))
using (PdfDocument pdf = new PdfDocument(reader))
{
    var strategy = new SimpleTextExtractionStrategy();
    string pageText = PdfTextExtractor.GetTextFromPage(pdf.GetPage(1), strategy);
    Console.WriteLine(pageText);
}
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Canvas.Parser.Listener;

string path = "sample.pdf";
using (PdfReader reader = new PdfReader(path))
using (PdfDocument pdf = new PdfDocument(reader))
{
    var strategy = new SimpleTextExtractionStrategy();
    string pageText = PdfTextExtractor.GetTextFromPage(pdf.GetPage(1), strategy);
    Console.WriteLine(pageText);
}
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas.Parser
Imports iText.Kernel.Pdf.Canvas.Parser.Listener

Private path As String = "sample.pdf"
Using reader As New PdfReader(path)
Using pdf As New PdfDocument(reader)
	Dim strategy = New SimpleTextExtractionStrategy()
	Dim pageText As String = PdfTextExtractor.GetTextFromPage(pdf.GetPage(1), strategy)
	Console.WriteLine(pageText)
End Using
End Using
$vbLabelText   $csharpLabel

この例はiTextSharpの能力を示していますが、単純な作業を実行するために必要な冗長性と追加オブジェクトに注目してください。

詳細な比較

インストールと基本的な使用法をカバーしたので、これら二つのライブラリがマルチページのPDFドキュメントからテキストを抽出する方法をより詳細に比較してみましょう。

応用例: IronPDFを使用してページ範囲からテキストを抽出する

IronPDFは、詳細なページ選択とレイアウト認識テキスト抽出をサポートしています。

using IronPdf;

// Load PDF document
var pdf = PdfDocument.FromFile("longPdf.pdf");

int[] pages = new[] { 2, 3, 4 };

var text = pdf.ExtractTextFromPages(pages);

Console.WriteLine("Extracted text from pages 2, 3, and 4:" + text);
using IronPdf;

// Load PDF document
var pdf = PdfDocument.FromFile("longPdf.pdf");

int[] pages = new[] { 2, 3, 4 };

var text = pdf.ExtractTextFromPages(pages);

Console.WriteLine("Extracted text from pages 2, 3, and 4:" + text);
Imports IronPdf

' Load PDF document
Private pdf = PdfDocument.FromFile("longPdf.pdf")

Private pages() As Integer = { 2, 3, 4 }

Private text = pdf.ExtractTextFromPages(pages)

Console.WriteLine("Extracted text from pages 2, 3, and 4:" & text)
$vbLabelText   $csharpLabel

出力

IronPDFテキスト抽出出力

高度な例:iTextSharpを使用してページ範囲からテキストを抽出

iTextSharpでは、ページ範囲を手動で指定してPdfTextExtractorを使用してテキストを抽出する必要があります。

using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;
using System.Text;

// Load PDF document
PdfReader reader = new PdfReader("longPdf.pdf");
StringBuilder textBuilder = new StringBuilder();

// Extract text from pages 2–4
for (int i = 2; i <= 4; i++)
{
    string pageText = PdfTextExtractor.GetTextFromPage(reader, i, new LocationTextExtractionStrategy());
    textBuilder.AppendLine(pageText);
}

// Output the extracted text
Console.WriteLine(textBuilder.ToString());
reader.Close();
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;
using System.Text;

// Load PDF document
PdfReader reader = new PdfReader("longPdf.pdf");
StringBuilder textBuilder = new StringBuilder();

// Extract text from pages 2–4
for (int i = 2; i <= 4; i++)
{
    string pageText = PdfTextExtractor.GetTextFromPage(reader, i, new LocationTextExtractionStrategy());
    textBuilder.AppendLine(pageText);
}

// Output the extracted text
Console.WriteLine(textBuilder.ToString());
reader.Close();
Imports iTextSharp.text.pdf
Imports iTextSharp.text.pdf.parser
Imports System.IO
Imports System.Text

' Load PDF document
Private reader As New PdfReader("longPdf.pdf")
Private textBuilder As New StringBuilder()

' Extract text from pages 2–4
For i As Integer = 2 To 4
	Dim pageText As String = PdfTextExtractor.GetTextFromPage(reader, i, New LocationTextExtractionStrategy())
	textBuilder.AppendLine(pageText)
Next i

' Output the extracted text
Console.WriteLine(textBuilder.ToString())
reader.Close()
$vbLabelText   $csharpLabel

出力

iTextSharp抽出テキスト出力

コード比較サマリー

iTextSharp vs IronPDF サマリー

IronPDFとiTextSharpの両方が高度なPDFテキスト抽出を可能にしますが、それぞれのアプローチは複雑さと明確さにおいて大きく異なります:

  • IronPDFは、クリーンでアクセスしやすい状態を保ちます。 PdfDocument.ExtractAllText() のような高度なメソッドを使用すると、最小限の設定で構造化されたコンテンツを抽出できます。コードはシンプルで、PDF 処理が初めての開発者でも簡単に実装できます。
  • iTextSharpは、一方で、PDF構造をより深く理解することが必要です。 テキストの抽出は、カスタムレンダーリスナーの設定、ページの手動管理、レイアウトデータの行ごとの解釈を含みます。強力ではありますが、より冗長で直感的ではないため、IronPDFはほとんどの.NETプロジェクトにとって、より迅速でメンテナンス性の高いオプションとなります。

    しかし、私たちの比較はここで終わりません。次に、これらの2つのライブラリが他の領域でどのように比較されるかを見てみましょう。

詳細な比較: IronPDF vs iTextSharp

.NET向けのPDFテキスト抽出ライブラリを評価する際、開発者はしばしばシンプルさ、パフォーマンス、および長期的なサポートのバランスを考慮します。 IronPDFiTextSharpが現実世界でどのように使用されるか、特にC#でPDFからテキストを抽出する場合について比較してみましょう。

使いやすさ

✅ IronPDF: クリーンでモダンなAPI

IronPDFは開発者の体験を重視しています。 インストールはNuGetを通じて簡単で、構文は直感的です。

using IronPdf;

// Load the PDF
var pdf = PdfDocument.FromFile("sample.pdf");

// Extract all text from every page
string extractedText = pdf.ExtractAllText();

// Output
Console.WriteLine(extractedText);
using IronPdf;

// Load the PDF
var pdf = PdfDocument.FromFile("sample.pdf");

// Extract all text from every page
string extractedText = pdf.ExtractAllText();

// Output
Console.WriteLine(extractedText);
Imports IronPdf

' Load the PDF
Private pdf = PdfDocument.FromFile("sample.pdf")

' Extract all text from every page
Private extractedText As String = pdf.ExtractAllText()

' Output
Console.WriteLine(extractedText)
$vbLabelText   $csharpLabel

IronPDFは、ExtractAllText()のようなシンプルなメソッド呼び出しの背後にある複雑さを抽象化し、ボイラープレートや解析ロジックを必要としません。

iTextSharp: より冗長で低レベル

iTextSharpは、各ページを手動で解析し、プレーンテキストを抽出するためにより多くの労力が必要です。

using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;

// Load the PDF
var reader = new PdfReader("sample.pdf");
StringBuilder text = new StringBuilder();

for (int i = 1; i <= reader.NumberOfPages; i++)
{
    text.Append(PdfTextExtractor.GetTextFromPage(reader, i));
}

// Output
Console.WriteLine(text.ToString());
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;

// Load the PDF
var reader = new PdfReader("sample.pdf");
StringBuilder text = new StringBuilder();

for (int i = 1; i <= reader.NumberOfPages; i++)
{
    text.Append(PdfTextExtractor.GetTextFromPage(reader, i));
}

// Output
Console.WriteLine(text.ToString());
Imports iTextSharp.text.pdf
Imports iTextSharp.text.pdf.parser
Imports System.IO

' Load the PDF
Private reader = New PdfReader("sample.pdf")
Private text As New StringBuilder()

For i As Integer = 1 To reader.NumberOfPages
	text.Append(PdfTextExtractor.GetTextFromPage(reader, i))
Next i

' Output
Console.WriteLine(text.ToString())
$vbLabelText   $csharpLabel

開発者はページを手動でループする必要があり、それによりコードが増え、エッジケースが発生した場合にバグが発生する可能性があります。

2. パフォーマンスと信頼性

  • IronPDF は最新のレンダリングエンジン(Chromium)上に構築されており、埋め込まれたフォント、回転されたテキスト、複数のレイアウトを持つ最新のPDFにも適しています。 テキストの抽出はレイアウトを認識し、スペーシングをより自然に保持します。
  • iTextSharpは強力であるものの、複雑な書式設定には対応が難しい場合があります。 混在した向きや非標準エンコーディングのPDFファイルは、文字化けやテキストの順序が正しくない結果を生むことがあります。

3. コストとライセンス

機能 IronPDF iTextSharp


ライセンスタイプ 商業利用(無料試用版あり) AGPL(無料)/ 商業用(有料)

価格の透明性 公開価格と永久ライセンス 複雑な階層と再分配ルール

サポート 専任サポートチーム コミュニティサポート(ライセンス未取得の場合)

クローズドソースアプリでの使用 ✅ はい(ライセンスあり) AGPLではありません

📌 注: 商用または独自のソフトウェアを構築している場合、iTextSharp AGPL はコードをオープンソースにするか、商業ライセンスを購入することを強制します。

IronPDFは、クローズドソースプロジェクト向けにより柔軟なライセンスモデルを提供します。

4. 開発者サポートとドキュメント

  • IronPDF: 最新のドキュメント、ビデオチュートリアル、高速なチケットベースのサポートが付属しています。
  • iTextSharp: ドキュメントは充実していますが、有料顧客でない限り無料サポートは限定的です。

5. クロスライブラリ サマリー

基準 IronPDF iTextSharp


シンプルさ ✅ 高度 – ワンライナーのテキスト抽出 ⚠️ 中程度 – 手動ページ反復

パフォーマンス ✅ 高速で最新の解析 ⚠️ 複雑なまたはスキャンされたPDFでは遅くなる可能性があります

商業に適した ✅ はい、AGPLの制約はありません ❌ AGPLはクローズドソースアプリでの使用を制限します

サポート & ドキュメント ✅ 専用、応答性に優れた ⚠️ コミュニティ依存

.NET Coreサポート ✅ フル ✅ フル

結論

C#でPDFからテキストを抽出する際、IronPDFとiTextSharpはどちらも有能なツールですが、異なるタイプの開発者に向けられています。 最新で簡単に統合できるソリューションをお探しで、優れたサポートを備え、機能が積極的に維持され、レイアウトもシームレスに保存されるなら、IronPDFが明らかに際立っています。 開発時間を短縮し、直感的なAPIを提供し、.NETフレームワーク内の幅広いアプリケーション、ウェブアプリからエンタープライズシステムまで、しっかりと機能します。

一方で、iTextSharpは、すでにそのエコシステムに組み込まれている開発者や、テキスト抽出戦略に対する詳細な制御を必要とする開発者にとって、依然として強力な選択肢です。 しかし、その急な学習曲線と商業的サポートの欠如は、迅速にスケールアップする必要があるプロジェクトや、クリーンなコードベースを維持するプロジェクトを遅らせる可能性があります。

.NET開発者でスピード、明確さ、信頼性のある結果を重視する方には、IronPDFが未来に備えた道を提供します。 ドキュメント自動化ツール、検索エンジン、または内部ダッシュボードを構築している場合でも、IronPDFの強力な機能とパフォーマンスは、より迅速でスマートな成果を提供するのに役立ちます。

👉 無料トライアルをダウンロードして、今日からIronPDFを試し、その違いを体感してください。 無料トライアルと開発者に優しいAPIを利用すれば、数分で開始できます。

製品の試用版を始める

チペゴ
ソフトウェアエンジニア
チペゴは優れた傾聴能力を持ち、それが顧客の問題を理解し、賢明な解決策を提供する助けとなっています。彼は情報技術の学士号を取得後、2023年にIron Softwareチームに加わりました。現在、彼はIronPDFとIronOCRの2つの製品に注力していますが、顧客をサポートする新しい方法を見つけるにつれて、他の製品に関する知識も日々成長しています。Iron Softwareでの協力的な生活を楽しんでおり、さまざまな経験を持つチームメンバーが集まり、効果的で革新的な解決策を提供することに貢献しています。チペゴがデスクを離れているときは、良い本を楽しんだり、サッカーをしていることが多いです。
< 以前
ITの技術文書レビュー:iTextSharpとIronPDFの比較 IronPDFとiTextSharpの機能を比較すると、両者ともPDFファイルの生成と操作に優れた能力を発揮します。しかし、IronPDFは特にユーザーフレンドリーなAPIと直感的な操作性に優れています。加えて、IronPDFは多機能なHTML to PDFコンバーターを備えており、開発者がウェブページのPDFを簡単に生成できるようにします。 一方で、iTextSharpはより柔軟で強力なPDF処理機能を提供するものの、学習曲線が急であり、新しいユーザーには複雑に感じられることがあります。 IronPDFの長所: - 簡単なインストールとセットアップ - フレンドリーなAPIデザイン - 効率的なHTML to PDF変換機能 iTextSharpの長所: - 高度なカスタマイズオプション - 詳細なドキュメンテーション - 強力なPDF処理機能 総じて、IronPDFは迅速な開発と簡易なPDF生成を求めるユーザーに最適です。iTextSharpは強力でカスタマイズ可能なソリューションを必要とする高度なユーザーに適しています。
次へ >
IronPDFとPuppeteer C#: 比較