Python實現(xiàn)快速從指定頁面PDF中提取文本
在現(xiàn)代辦公環(huán)境中,PDF 文件作為一種通用的文檔格式被廣泛使用。無論是合同、報告還是電子書,很多重要信息都儲存于 PDF 文件中。因此,從 PDF 文件中提取文本數(shù)據(jù)的需求也逐漸增加。本文將為大家介紹如何使用 Spire.PDF for Python 來實現(xiàn)這一功能,具體包括從某一頁和從指定區(qū)域提取文本。
1. 環(huán)境準(zhǔn)備
首先,確保你已經(jīng)安裝了 Python 和 Spire.PDF 的相關(guān)庫。你可以通過以下命令安裝 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 文件。
- 配置提取選項 :通過設(shè)置
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ū)域的左上角坐標(biāo)為(0, 100),寬度為890,高度為80。 - 執(zhí)行文本提取 :然后使用
ExtractText方法從指定區(qū)域提取文本。 - 保存文本 :最后,提取的文本同樣保存為 UTF-8 編碼的文件。
結(jié)論
通過以上方法,我們可以方便地從 PDF 文檔中提取所需的文本信息。Spire.PDF for Python 提供的 API 簡潔高效,能夠滿足多種文本提取需求。不論是從全頁提取還是從特定區(qū)域提取,在實際工作中都能顯著提高效率,尤其對于需要處理大量 PDF 文件的場合,使用此工具將使你事半功倍。
到此這篇關(guān)于Python實現(xiàn)快速從指定頁面PDF中提取文本的文章就介紹到這了,更多相關(guān)Python提取PDF文本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
win10下python3.5.2和tensorflow安裝環(huán)境搭建教程
這篇文章主要為大家詳細(xì)介紹了win10下python3.5.2和tensorflow安裝環(huán)境搭建教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09
六個Python編程最受用的內(nèi)置函數(shù)使用詳解
在日常的python編程中使用這幾個函數(shù)來簡化我們的編程工作,經(jīng)常使用能使編程效率大大地提高。本文為大家總結(jié)了六個Python編程最受用的內(nèi)置函數(shù),感興趣的可以了解一下2022-07-07
利用Python第三方庫xlwt寫入數(shù)據(jù)到Excel工作表實例代碼
大家應(yīng)該都知道xlwt是python中寫入到excel的庫,下面這篇文章主要給大家介紹了關(guān)于利用Python第三方庫xlwt寫入數(shù)據(jù)到Excel工作表的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
python list數(shù)據(jù)等間隔抽取并新建list存儲的例子
今天小編就為大家分享一篇python list數(shù)據(jù)等間隔抽取并新建list存儲的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
對python當(dāng)中不在本路徑的py文件的引用詳解
今天小編就為大家分享一篇對python當(dāng)中不在本路徑的py文件的引用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Windows下Python2與Python3兩個版本共存的方法詳解
這篇文章主要介紹了Windows下Python2與Python3兩個版本共存的方法,文中介紹的很詳細(xì),對大家具有一定的參考價值,有需要的朋友們下面來一起看看吧。2017-02-02

