Python實現(xiàn)快速從指定頁面PDF中提取文本
在現(xiàn)代辦公環(huán)境中,PDF 文件作為一種通用的文檔格式被廣泛使用。無論是合同、報告還是電子書,很多重要信息都儲存于 PDF 文件中。因此,從 PDF 文件中提取文本數(shù)據(jù)的需求也逐漸增加。本文將為大家介紹如何使用 Spire.PDF for Python 來實現(xiàn)這一功能,具體包括從某一頁和從指定區(qū)域提取文本。
1. 環(huán)境準備
首先,確保你已經(jīng)安裝了 Python 和 Spire.PDF 的相關庫。你可以通過以下命令安裝 Spire.PDF:
pip install Spire.PDF
2. 從指定頁面提取文本
2.1 代碼示例
以下代碼展示了如何從 PDF 文檔中的特定頁(例如第2頁)提取文本:
from spire.pdf.common import *
from spire.pdf import *
# 創(chuàng)建一個 PdfDocument 對象
doc = PdfDocument()
# 加載 PDF 文檔
doc.LoadFromFile('C:/Users/Administrator/Desktop/Terms of service.pdf')
# 創(chuàng)建 PdfTextExtractOptions 對象并啟用全文本提取
extractOptions = PdfTextExtractOptions()
# 提取所有文本,包括空格
extractOptions.IsExtractAllText = True
# 獲取特定的頁面(例如,第2頁)
page = doc.Pages.get_Item(1)
# 創(chuàng)建 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 代碼解析
- 創(chuàng)建
PdfDocument對象 :這一步是加載 PDF 文件的第一步。 - 加載 PDF 文檔 :使用指定路徑加載你要處理的 PDF 文件。
- 配置提取選項 :通過設置
IsExtractAllText為 True,確保提取所有文本,包括空格。 - 獲取特定頁面 :
doc.Pages.get_Item(1)獲取的是 PDF 的第二頁(索引從0開始)。 - 創(chuàng)建文本提取器并提取文本 :使用
PdfTextExtractor對象來提取文本。 - 將提取的文本保存為文件 :最終將文本內(nèi)容保存到指定路徑的文件中。
3. 從指定區(qū)域提取文本
有時候,僅提取 PDF 中的某一特定區(qū)域的文本更加有效。這可以通過定義一個矩形區(qū)域來實現(xiàn)。
3.1 代碼示例
以下代碼將展示如何從 PDF 的指定區(qū)域提取文本:
from spire.pdf.common import *
from spire.pdf import *
# 創(chuàng)建一個 PdfDocument 對象
doc = PdfDocument()
# 加載 PDF 文檔
doc.LoadFromFile('C:/Users/Administrator/Desktop/Terms of service.pdf')
# 獲取特定的頁面(例如,第2頁)
page = doc.Pages.get_Item(1)
# 創(chuàng)建 PdfTextExtractor 對象
textExtractor = PdfTextExtractor(page)
# 創(chuàng)建 PdfTextExtractOptions 對象
extractOptions = PdfTextExtractOptions()
# 定義提取的矩形區(qū)域
# RectangleF(left, top, width, height)
extractOptions.ExtractArea = RectangleF(0.0, 100.0, 890.0, 80.0)
# 從指定區(qū)域提取文本,保留空格
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頁。 - 定義提取區(qū)域 :通過
RectangleF類來定義一個矩形區(qū)域,該區(qū)域的左上角坐標為(0, 100),寬度為890,高度為80。 - 執(zhí)行文本提取 :然后使用
ExtractText方法從指定區(qū)域提取文本。 - 保存文本 :最后,提取的文本同樣保存為 UTF-8 編碼的文件。
結論
通過以上方法,我們可以方便地從 PDF 文檔中提取所需的文本信息。Spire.PDF for Python 提供的 API 簡潔高效,能夠滿足多種文本提取需求。不論是從全頁提取還是從特定區(qū)域提取,在實際工作中都能顯著提高效率,尤其對于需要處理大量 PDF 文件的場合,使用此工具將使你事半功倍。
到此這篇關于Python實現(xiàn)快速從指定頁面PDF中提取文本的文章就介紹到這了,更多相關Python提取PDF文本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
對Python生成漢字字庫文字,以及轉換為文字圖片的實例詳解
今天小編就為大家分享一篇對Python生成漢字字庫文字,以及轉換為文字圖片的實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Python用matplotlib庫畫圖中文和負號顯示為方框的問題解決
matplotlib中畫圖的時候會遇到負號顯示為方框的問題,下面這篇文章主要給大家介紹了關于Python用matplotlib庫畫圖中文和負號顯示為方框的問題解決,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-07-07
Python3.7安裝keras和TensorFlow的教程圖解
這篇文章主要介紹了Python3.7安裝keras和TensorFlow經(jīng)驗,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10

