python基于pdfminer庫(kù)提取pdf文字代碼實(shí)例
安裝pdfminer 庫(kù)
windows 下安裝pdfminer3k
pip install pdfminer3k
Liunx 下安裝pdfminer
pip install pdfminer
代碼
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBoxHorizontal
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed, PDFResourceManager, PDFPageInterpreter
def pdfParse(path):
"""
pdf文字提取
:param path:文件路徑
:return: 每頁(yè)結(jié)果列表
"""
fp = open(path, 'rb') # 以二進(jìn)制讀模式打開
# 用文件對(duì)象來(lái)創(chuàng)建一個(gè)pdf文檔分析器
praser = PDFParser(fp)
# 創(chuàng)建一個(gè)PDF文檔
doc = PDFDocument()
# 連接分析器 與文檔對(duì)象
praser.set_document(doc)
doc.set_parser(praser)
# 提供初始化密碼
# 如果沒(méi)有密碼 就創(chuàng)建一個(gè)空的字符串
doc.initialize()
# 檢測(cè)文檔是否提供txt轉(zhuǎn)換,不提供就忽略
if not doc.is_extractable:
raise PDFTextExtractionNotAllowed
else:
# 創(chuàng)建PDf 資源管理器 來(lái)管理共享資源
rsrcmgr = PDFResourceManager()
# 創(chuàng)建一個(gè)PDF設(shè)備對(duì)象
laparams = LAParams()
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
# 創(chuàng)建一個(gè)PDF解釋器對(duì)象
interpreter = PDFPageInterpreter(rsrcmgr, device)
#每頁(yè)文字內(nèi)容
results = []
# 循環(huán)遍歷列表,每次處理一個(gè)page的內(nèi)容
for page in doc.get_pages(): # doc.get_pages() 獲取page列表
interpreter.process_page(page)
# 接受該頁(yè)面的LTPage對(duì)象
layout = device.get_result()
# 這里layout是一個(gè)LTPage對(duì)象 里面存放著 這個(gè)page解析出的各種對(duì)象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要獲取文本就獲得對(duì)象的text屬性,
for x in layout:
if isinstance(x, LTTextBoxHorizontal):
results.append(x.get_text())
return results
該庫(kù)是根據(jù) 迭代pdf每一頁(yè) 進(jìn)行文字提取, 也可以識(shí)別判斷頁(yè)碼的功能
另外還有一個(gè)pypdf2 庫(kù)也可以識(shí)別但是感覺(jué)不如這個(gè)準(zhǔn)確
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)兩組數(shù)據(jù)縱向排序
在數(shù)據(jù)分析和處理過(guò)程中,排序是一項(xiàng)非常常見(jiàn)的操作,本文將詳細(xì)講解如何使用Python實(shí)現(xiàn)兩組數(shù)據(jù)的縱向排序,并提供完整的開發(fā)思路和代碼示例,需要的可以參考下2024-12-12
Python3多進(jìn)程 multiprocessing 模塊實(shí)例詳解
這篇文章主要介紹了Python3多進(jìn)程 multiprocessing 模塊,結(jié)合實(shí)例形式詳細(xì)分析了Python3多進(jìn)程 multiprocessing 模塊的概念、原理、相關(guān)方法使用技巧與注意事項(xiàng),需要的朋友可以參考下2018-06-06
Python Django 頁(yè)面上展示固定的頁(yè)碼數(shù)實(shí)現(xiàn)代碼
這篇文章主要介紹了Python Django 頁(yè)面上展示固定的頁(yè)碼數(shù)實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Python代碼實(shí)現(xiàn)粒子群算法圖文詳解
這篇文章主要介紹了Python編程實(shí)現(xiàn)粒子群算法詳解,涉及粒子群算法的原理,過(guò)程,以及實(shí)現(xiàn)代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下2021-08-08
Python使用xlrd實(shí)現(xiàn)讀取合并單元格
這篇文章主要介紹了Python使用xlrd實(shí)現(xiàn)讀取合并單元格,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
使用Python實(shí)現(xiàn)調(diào)整Excel中的行列順序
調(diào)整Excel?行列順序指的是改變工作表中行或列的位置,以便更好地展示和分析數(shù)據(jù),本文將介紹如何通過(guò)Python高效地調(diào)整Excel?行列順序,感興趣的可以了解下2025-01-01
利用Python實(shí)現(xiàn)生成顏色表(color chart)
在做色彩相關(guān)的算法分析時(shí)候,經(jīng)常需要使用規(guī)則的顏色表來(lái)進(jìn)行輔助,本文就來(lái)利用numpy和opencv生成顏色表并保存為圖片,需要的可以參考一下2023-05-05
python實(shí)現(xiàn)對(duì)svn操作及信息獲取
這篇文章主要介紹了python實(shí)現(xiàn)對(duì)svn的操作及信息獲取示例過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10

