C#使用Spire.PDF for .NET輕松提取PDF文件中的文字內(nèi)容
在數(shù)據(jù)處理工作中,PDF 文件因其跨平臺(tái)、格式穩(wěn)定的特點(diǎn)而被廣泛使用。然而,從 PDF 中提取文本內(nèi)容卻常常令人頭疼——無論是整理資料、分析數(shù)據(jù),還是構(gòu)建文本檢索系統(tǒng),高效準(zhǔn)確地提取 PDF 文本都是一項(xiàng)基礎(chǔ)而重要的需求。本文將介紹如何使用 Spire.PDF for .NET 這一強(qiáng)大的組件,通過 C# 代碼輕松實(shí)現(xiàn) PDF 文本提取。
Spire.PDF for .NET 簡介
Spire.PDF for .NET 是一款專業(yè)的 PDF 組件,它允許開發(fā)者在 .NET 平臺(tái)上創(chuàng)建、讀取、編輯和轉(zhuǎn)換 PDF 文件,無需安裝 Adobe Acrobat 或其他外部依賴。該組件提供了豐富的 API,其中文本提取功能尤為實(shí)用,支持提取整頁文本,也支持僅提取指定區(qū)域的文本內(nèi)容。
通過 NuGet 安裝:
Install-Package Spire.PDF
從指定頁面提取全文
在實(shí)際應(yīng)用中,最常見的需求是將某個(gè) PDF 頁面的全部文字提取出來。使用 Spire.PDF 可以輕松實(shí)現(xiàn)這一目標(biāo)。以下是用 C# 實(shí)現(xiàn)的完整代碼:
using Spire.Pdf;
using Spire.Pdf.Texts;
using System.IO;
namespace ExtractTextFromIndividualPages
{
internal class Program
{
static void Main(string[] args)
{
// 創(chuàng)建 PDF 文檔實(shí)例
PdfDocument pdf = new PdfDocument();
// 加載 PDF 文件
pdf.LoadFromFile("Input.pdf");
// 獲取要提取文本的頁面(例如,索引1對應(yīng)第二頁,注:索引從0開始)
PdfPageBase page = pdf.Pages[1];
// 為選中的頁面創(chuàng)建PdfTextExtractor實(shí)例
PdfTextExtractor extractor = new PdfTextExtractor(page);
// 設(shè)置提取選項(xiàng)
PdfTextExtractOptions option = new PdfTextExtractOptions
{
IsExtractAllText = true
};
// 從指定頁面提取文本
string text = extractor.ExtractText(option);
// 將提取的文本保存到文本文件
File.WriteAllText("Extracted.txt", text);
// 關(guān)閉 PDF 文檔
pdf.Close();
}
}
}
上述代碼的執(zhí)行流程如下:首先創(chuàng)建 PdfDocument 對象并加載目標(biāo) PDF 文件。接著,通過 Pages 集合獲取指定頁面(本例為第一頁)。為了實(shí)現(xiàn)完整的文本提取,設(shè)置 PdfTextExtractOptions 對象的 IsExtractAllText 屬性為 true,確保提取時(shí)不會(huì)遺漏任何文本內(nèi)容。隨后,創(chuàng)建 PdfTextExtractor 對象并傳入頁面實(shí)例,調(diào)用 ExtractText 方法即可獲得該頁面的全部文字。最后,將提取到的文本寫入本地文件,并關(guān)閉文檔釋放資源。整個(gè)過程簡潔明了,僅需幾行核心代碼,便能完成從 PDF 頁面到純文本的轉(zhuǎn)換。
從指定區(qū)域提取文本
在某些場景下,我們并不需要整頁的內(nèi)容,而只需要提取頁面中的特定區(qū)域——例如表格中的某列數(shù)據(jù)、標(biāo)題欄、簽章區(qū)域等。Spire.PDF 同樣提供了靈活的解決方案。以下是區(qū)域提取的 C# 實(shí)現(xiàn)代碼:
using Spire.Pdf;
using Spire.Pdf.Texts;
using System.IO;
using System.Drawing;
namespace ExtractTextFromDefinedArea
{
internal class Program
{
static void Main(string[] args)
{
// 創(chuàng)建 PDF 文檔實(shí)例
PdfDocument pdf = new PdfDocument();
// 加載 PDF 文件
pdf.LoadFromFile("Input.pdf");
// 獲取第二頁(索引1對應(yīng)第二頁)
PdfPageBase page = pdf.Pages[1];
// 為選中的頁面創(chuàng)建 PdfTextExtractor 實(shí)例
PdfTextExtractor textExtractor = new PdfTextExtractor(page);
// 設(shè)置提取選項(xiàng)(指定矩形區(qū)域)
PdfTextExtractOptions extractOptions = new PdfTextExtractOptions
{
// 矩形區(qū)域參數(shù):X坐標(biāo)、Y坐標(biāo)、寬度、高度
ExtractArea = new RectangleF(0, 0, 595, 300)
};
// 從指定矩形區(qū)域提取文本
string text = textExtractor.ExtractText(extractOptions);
// 將提取的文本保存到文本文件
File.WriteAllText("Extracted.txt", text);
// 關(guān)閉 PDF 文檔
pdf.Close();
}
}
}
與全文提取類似,首先加載 PDF 并獲取目標(biāo)頁面。關(guān)鍵區(qū)別在于設(shè)置提取區(qū)域:通過 PdfTextExtractOptions 的 ExtractArea 屬性,可以定義一個(gè)矩形區(qū)域,該區(qū)域由左上角坐標(biāo) (X, Y) 以及寬度和高度共同確定。組件會(huì)智能地僅提取該矩形范圍內(nèi)的文本內(nèi)容。本例中定義的矩形區(qū)域起始坐標(biāo)為 (0, 0),寬度為 595,高度為 300,單位為磅(Point)。
這種方法特別適合處理結(jié)構(gòu)化的 PDF 文檔,比如財(cái)務(wù)報(bào)表、發(fā)票或表單,可以精準(zhǔn)定位并提取所需字段,大大提高了信息獲取的效率和準(zhǔn)確性。
實(shí)際應(yīng)用與注意事項(xiàng)
在實(shí)際開發(fā)中,文本提取功能可廣泛應(yīng)用于數(shù)據(jù)采集、內(nèi)容分析、文檔歸檔等場景。例如,將合同 PDF 中的條款提取后存入數(shù)據(jù)庫,或從科研論文 PDF 中抽取摘要部分進(jìn)行檢索分析。
使用 Spire.PDF 進(jìn)行文本提取時(shí),有幾個(gè)要點(diǎn)值得注意:首先,確保矩形區(qū)域的坐標(biāo)和尺寸準(zhǔn)確無誤,可以通過預(yù)覽或測量工具輔助定位;其次,對于復(fù)雜的 PDF(如包含多列排版或特殊字體),建議啟用完整提取模式以保證最佳效果;最后,提取完成后務(wù)必調(diào)用 Close 方法釋放文檔資源,避免內(nèi)存占用。
總結(jié)
借助 Spire.PDF for .NET,C# 開發(fā)者可以以極簡的代碼實(shí)現(xiàn)高質(zhì)量的 PDF 文本提取功能。無論是整頁提取還是區(qū)域提取,該組件都提供了直觀、可靠的解決方案。對于需要處理 PDF 文本的 .NET 項(xiàng)目而言,Spire.PDF 無疑是一個(gè)值得考慮的高效工具。
以上就是C#使用Spire.PDF for .NET輕松提取PDF文件中的文字內(nèi)容的詳細(xì)內(nèi)容,更多關(guān)于C#提取PDF文本的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#編程自學(xué)之?dāng)?shù)據(jù)類型和變量一
本節(jié)課我們將學(xué)習(xí)C#編程語言的數(shù)據(jù)類型,數(shù)據(jù)類型可以分為值類型和引用類型,接著介紹變量的使用方法和作用域等內(nèi)容,為了方便大家理解,我們還會(huì)舉一些小例子作為說明。2015-10-10
Unity實(shí)現(xiàn)弧形移動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)弧形移動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06
C#借助Spire.XLS實(shí)現(xiàn)自動(dòng)化生成和操作Excel表格
Excel中的表格不僅僅是簡單的數(shù)據(jù)區(qū)域,它具備了排序、篩選、格式化等一系列功能,可以大大提升數(shù)據(jù)處理的效率,本文我們就來簡單講講如何使用C#實(shí)現(xiàn)在 Excel中高效創(chuàng)建和操作表格吧2025-11-11

