在現代辦公環境中,PDF 文件作為一種通用的文檔格式被廣泛使用。無論是合同、報告還是電子書,很多重要信息都儲存於 PDF 文件中。因此,從 PDF 文件中提取文本數據的需求也逐漸增加。本文將為大家介紹如何使用 Spire.PDF for Python 來實現這一功能,具體包括從某一頁和從指定區域提取文本。
1. 環境準備
首先,確保你已經安裝了 Python 和 Spire.PDF 的相關庫。你可以通過以下命令安裝 Spire.PDF:
pip install Spire.PDF
2. 從指定頁面提取文本
2.1 代碼示例
以下代碼展示瞭如何從 PDF 文檔中的特定頁(例如第2頁)提取文本:
from spire.pdf.common import *
from spire.pdf import *
# 創建一個 PdfDocument 對象
doc = PdfDocument()
# 加載 PDF 文檔
doc.LoadFromFile('C:/Users/Administrator/Desktop/Terms of service.pdf')
# 創建 PdfTextExtractOptions 對象並啓用全文本提取
extractOptions = PdfTextExtractOptions()
# 提取所有文本,包括空格
extractOptions.IsExtractAllText = True
# 獲取特定的頁面(例如,第2頁)
page = doc.Pages.get_Item(1)
# 創建 PdfTextExtractor 對象
textExtractor = PdfTextExtractor(page)
# 從頁面中提取文本
text = textExtractor.ExtractText(extractOptions)
# 使用 UTF-8 編碼將提取的文本寫入文件
withopen('output/TextOfPage.txt', 'w', encoding='utf-8') as file:
file.write(text)
2.2 代碼解析
- 創建
PdfDocument對象 :這一步是加載 PDF 文件的第一步。 - 加載 PDF 文檔 :使用指定路徑加載你要處理的 PDF 文件。
- 配置提取選項 :通過設置
IsExtractAllText為 True,確保提取所有文本,包括空格。 - 獲取特定頁面 :
doc.Pages.get_Item(1)獲取的是 PDF 的第二頁(索引從0開始)。 - 創建文本提取器並提取文本 :使用
PdfTextExtractor對象來提取文本。 - 將提取的文本保存為文件 :最終將文本內容保存到指定路徑的文件中。
3. 從指定區域提取文本
有時候,僅提取 PDF 中的某一特定區域的文本更加有效。這可以通過定義一個矩形區域來實現。
3.1 代碼示例
以下代碼將展示如何從 PDF 的指定區域提取文本:
from spire.pdf.common import *
from spire.pdf import *
# 創建一個 PdfDocument 對象
doc = PdfDocument()
# 加載 PDF 文檔
doc.LoadFromFile('C:/Users/Administrator/Desktop/Terms of service.pdf')
# 獲取特定的頁面(例如,第2頁)
page = doc.Pages.get_Item(1)
# 創建 PdfTextExtractor 對象
textExtractor = PdfTextExtractor(page)
# 創建 PdfTextExtractOptions 對象
extractOptions = PdfTextExtractOptions()
# 定義提取的矩形區域
# RectangleF(left, top, width, height)
extractOptions.ExtractArea = RectangleF(0.0, 100.0, 890.0, 80.0)
# 從指定區域提取文本,保留空格
text = textExtractor.ExtractText(extractOptions)
# 使用 UTF-8 編碼將提取的文本寫入文件
withopen('output/TextOfRectangle.txt', 'w', encoding='utf-8') as file:
file.write(text)
3.2 代碼解析
- 加載 PDF 文件 :與之前相同,首先加載 PDF 文檔。
- 獲取特定頁面 :依然使用
doc.Pages.get_Item(1)來獲取第2頁。 - 定義提取區域 :通過
RectangleF類來定義一個矩形區域,該區域的左上角座標為(0, 100),寬度為890,高度為80。 - 執行文本提取 :然後使用
ExtractText方法從指定區域提取文本。 - 保存文本 :最後,提取的文本同樣保存為 UTF-8 編碼的文件。
結論
通過以上方法,我們可以方便地從 PDF 文檔中提取所需的文本信息。Spire.PDF for Python 提供的 API 簡潔高效,能夠滿足多種文本提取需求。不論是從全頁提取還是從特定區域提取,在實際工作中都能顯著提高效率,尤其對於需要處理大量 PDF 文件的場合,使用此工具將使你事半功倍。
希望這篇博客能夠幫助你更好地理解如何使用 Python 提取 PDF 文本,讓你的工作更輕鬆高效!