透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
PDFドキュメントからテキストを抽出することは、最新のソフトウェアプロジェクトにおける一般的な要件です。請求書の処理から検索エンジンのためのコンテンツの抽出まで、多様な場面で必要とされています。 開発者は、正確な結果を提供するだけでなく、C# .NETアプリケーションに効率的に統合できる信頼できるライブラリを必要としています。 一部の開発者は、スキャンされた文書や画像からデータを抽出するためにOCR(光学式文字認識)ツールを使用しますが、場合によっては強力なテキスト抽出ツールが必要なことがあります。
しかし、市場にはいくつかのPDFライブラリがあるため、適切なツールを選ぶのは圧倒されることがあります。 会話によく出てくる2つのライブラリは、iTextSharp と IronPDF です。 どちらもPDFからテキストを抽出できますが、使いやすさ、サポート、パフォーマンス、価格設定において大きく異なります。 この記事では、テキスト抽出の処理方法を示す異なるコードサンプルを見ながら、2つのライブラリを比較し、どちらがプロジェクトに最適かを決定するのに役立てます。
iTextSharpは、長い間、.NET向けの人気のあるオープンソースのPDFライブラリであり、コンテンツを生成、操作、抽出するための強力なツールを提供しています。 これは、JavaベースのiTextのC#ポートとして、PDF構造を深く制御する機能を提供し、上級ユーザーに最適です。 しかし、この柔軟性には急な学習曲線とライセンスの制約が伴います。 商業利用では、AGPL の義務を回避するために有料ライセンスが必要になることがよくあります。
IronPDF を導入—.NET 用に構築された現代的で開発者に優しいPDFライブラリです。 それは、直感的なAPI、明確なドキュメント、迅速なサポートで、テキスト抽出のような一般的なタスクを簡素化します。 このツールを使用すると、開発者はPDFドキュメントから画像やテキストを簡単に抽出でき、新しいPDFファイルを作成したり、PDFのセキュリティを実装したりすることができます。
iTextSharpとは異なり、IronPDFは複雑な低レベルの構造を避け、より迅速かつ効率的に作業できるようにします。 単一のページまたは数百のPDFを処理する場合でも、それは物事をシンプルに保ちます。
それはまた積極的にメンテナンスされており、定期的なアップデートとわかりやすいライセンスモデルが含まれ、無料トライアルやチームと個人開発者のための手頃なプランがあります。
IronPDFは、NuGetパッケージマネージャーコンソールで次のコマンドを実行することにより、NuGet経由でインストールすることもできます。
Install-Package IronPdf
または、ソリューション画面のNuGetパッケージマネージャーを使用してインストールすることもできます。 これを行うには、「ツール > NuGet パッケージ マネージャー > ソリューションの NuGet パッケージの管理」に移動します。
次に、IronPDFを検索し、「インストール」をクリックします。
インストールが完了すると、テキストの抽出は簡単です:
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)
📝 注: このメソッドはPDFファイル全体を読み込み、テキストを読書順に返します。これは従来のライブラリと比較して解析時間を数時間節約できます。
エンコーディング、コンテンツストリーム、手動パースを処理する必要はありません。 IronPDFはそれらすべてを内部で処理し、最小限のセットアップでクリーンで正確な出力を提供します。その後、抽出されたテキストを新しいテキストファイルに簡単に保存して、さらに操作や利用が可能です。
iTextSharpのコアパッケージをPDF生成用にダウンロードするには:
Install-Package iTextSharp
Install-Package iTextSharp
ソリューション画面のパッケージマネージャー経由でiTextSharpを利用することもできます。 これを行うには、まずツールのドロップダウンメニューに移動し、「NuGet パッケージ マネージャー > ソリューションの NuGet パッケージの管理」を見つけてください。
次に、iTextSharpを検索して、「インストール」をクリックします。
こちらは、単一の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
この例はiTextSharpの能力を示していますが、単純な作業を実行するために必要な冗長性と追加オブジェクトに注目してください。
インストールと基本的な使用法をカバーしたので、これら二つのライブラリがマルチページのPDFドキュメントからテキストを抽出する方法をより詳細に比較してみましょう。
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)
出力
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()
出力
IronPDFとiTextSharpの両方が高度なPDFテキスト抽出を可能にしますが、それぞれのアプローチは複雑さと明確さにおいて大きく異なります:
iTextSharpは、一方で、PDF構造をより深く理解することが必要です。 テキストの抽出は、カスタムレンダーリスナーの設定、ページの手動管理、レイアウトデータの行ごとの解釈を含みます。強力ではありますが、より冗長で直感的ではないため、IronPDFはほとんどの.NETプロジェクトにとって、より迅速でメンテナンス性の高いオプションとなります。
しかし、私たちの比較はここで終わりません。次に、これらの2つのライブラリが他の領域でどのように比較されるかを見てみましょう。
.NET向けのPDFテキスト抽出ライブラリを評価する際、開発者はしばしばシンプルさ、パフォーマンス、および長期的なサポートのバランスを考慮します。 IronPDFとiTextSharpが現実世界でどのように使用されるか、特に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)
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())
開発者はページを手動でループする必要があり、それによりコードが増え、エッジケースが発生した場合にバグが発生する可能性があります。
機能 IronPDF iTextSharp
ライセンスタイプ 商業利用(無料試用版あり) AGPL(無料)/ 商業用(有料)
価格の透明性 公開価格と永久ライセンス 複雑な階層と再分配ルール
サポート 専任サポートチーム コミュニティサポート(ライセンス未取得の場合)
クローズドソースアプリでの使用 ✅ はい(ライセンスあり) AGPLではありません
📌 注: 商用または独自のソフトウェアを構築している場合、iTextSharp AGPL はコードをオープンソースにするか、商業ライセンスを購入することを強制します。
IronPDFは、クローズドソースプロジェクト向けにより柔軟なライセンスモデルを提供します。
基準 IronPDF iTextSharp
シンプルさ ✅ 高度 – ワンライナーのテキスト抽出 ⚠️ 中程度 – 手動ページ反復
パフォーマンス ✅ 高速で最新の解析 ⚠️ 複雑なまたはスキャンされたPDFでは遅くなる可能性があります
商業に適した ✅ はい、AGPLの制約はありません ❌ AGPLはクローズドソースアプリでの使用を制限します
サポート & ドキュメント ✅ 専用、応答性に優れた ⚠️ コミュニティ依存
.NET Coreサポート ✅ フル ✅ フル
C#でPDFからテキストを抽出する際、IronPDFとiTextSharpはどちらも有能なツールですが、異なるタイプの開発者に向けられています。 最新で簡単に統合できるソリューションをお探しで、優れたサポートを備え、機能が積極的に維持され、レイアウトもシームレスに保存されるなら、IronPDFが明らかに際立っています。 開発時間を短縮し、直感的なAPIを提供し、.NETフレームワーク内の幅広いアプリケーション、ウェブアプリからエンタープライズシステムまで、しっかりと機能します。
一方で、iTextSharpは、すでにそのエコシステムに組み込まれている開発者や、テキスト抽出戦略に対する詳細な制御を必要とする開発者にとって、依然として強力な選択肢です。 しかし、その急な学習曲線と商業的サポートの欠如は、迅速にスケールアップする必要があるプロジェクトや、クリーンなコードベースを維持するプロジェクトを遅らせる可能性があります。
.NET開発者でスピード、明確さ、信頼性のある結果を重視する方には、IronPDFが未来に備えた道を提供します。 ドキュメント自動化ツール、検索エンジン、または内部ダッシュボードを構築している場合でも、IronPDFの強力な機能とパフォーマンスは、より迅速でスマートな成果を提供するのに役立ちます。
👉 無料トライアルをダウンロードして、今日からIronPDFを試し、その違いを体感してください。 無料トライアルと開発者に優しいAPIを利用すれば、数分で開始できます。
製品の試用版を始める