在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
從 PDF 文件中提取文字是現代軟體專案中的常見需求,從處理發票到為搜尋引擎挖掘內容。 開發人員需要可靠的庫,不僅提供準確的結果,還能在 C# .NET 應用程式中提供有效的整合體驗。 一些開發人員使用OCR(光學字符識別)工具從掃描文件和圖像中提取數據,但有時需要一個強大的文本提取工具來完成工作。
但是,由於市面上有許多 PDF 函式庫,選擇合適的工具可能會令人感到不知所措。 在對話中經常提到的兩個庫是iTextSharp和IronPDF。 兩者都可以從PDF中提取文字,但在可用性、支援、效能和定價上有顯著差異。 本文比較了這兩個函式庫,透過不同的程式碼範例示範它們如何處理文本提取,以幫助您決定哪個最適合您的專案。
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 專案來說是一個更快速且更易於維護的選擇。
但我們的比較不僅止於此,接下來,我們來看看這兩個庫在其他方面的比較。
在評估 .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,您可以在幾分鐘內開始使用。