Python實現PDF轉文字

2021-08-31 16:09:12 字數 1822 閱讀 1282

安裝依賴:

pip install pdfminer3k

# -*- coding:utf-8

import sys

import importlib

importlib.reload(sys)

from pdfminer.pdfparser import pdfparser,pdfdocument

from pdfminer.pdfinterp import pdfresourcemanager, pdfpageinterpreter

from pdfminer.converter import pdfpageaggregator

from pdfminer.layout import lttextboxhorizontal,laparams

from pdfminer.pdfinterp import pdftextextractionnotallowed

''' 解析pdf 文字,儲存到txt檔案中

'''path = r'python標準庫.pdf'

def parse():

fp = open(path, 'rb') # 以二進位制讀模式開啟

#用檔案物件來建立乙個pdf文件分析器

praser = pdfparser(fp)

# 建立乙個pdf文件

doc = pdfdocument()

# 連線分析器 與文件物件

praser.set_document(doc)

doc.set_parser(praser)

# 提供初始化密碼

# 如果沒有密碼 就建立乙個空的字串

doc.initialize()

# 檢測文件是否提供txt轉換,不提供就忽略

if not doc.is_extractable:

raise pdftextextractionnotallowed

else:

# 建立pdf 資源管理器 來管理共享資源

rsrcmgr = pdfresourcemanager()

# 建立乙個pdf裝置物件

laparams = laparams()

device = pdfpageaggregator(rsrcmgr, laparams=laparams)

# 建立乙個pdf直譯器物件

interpreter = pdfpageinterpreter(rsrcmgr, device)

# 迴圈遍歷列表,每次處理乙個page的內容

for page in doc.get_pages(): # doc.get_pages() 獲取page列表

interpreter.process_page(page)

# 接受該頁面的ltpage物件

layout = device.get_result()

# 這裡layout是乙個ltpage物件 裡面存放著 這個page解析出的各種物件 一般包括lttextbox, ltfigure, ltimage, lttextboxhorizontal 等等 想要獲取文字就獲得物件的text屬性,

for x in layout:

if (isinstance(x, lttextboxhorizontal)):

with open(r'1.txt', 'a', encoding='utf-8') as f:

results = x.get_text()

f.write(results + '\n')

if __name__ == '__main__':

parse()

加密PDF轉文字

加密pdf轉文字 adobe acrobat pro dc 將解密的pdf匯出成word 天若ocr 專業版 59元 word 格式修改sub selectalltables dim temptable as table 判斷文件是否被保護 if activedocument.protectiont...

Qt for Python 七 pdf轉文字

環境 win7 64 py3 第一步 安裝pdf操作庫 pdfminer3k pdfminer3k是python3使用的pdfminer的版本,這裡安裝一定要選定穩定版版本號,pip自動選擇的最新版,貌似有問題,坑了我好久 具體用法官網看文件 pip3 install pdfminer3k 1.2....

呼叫百度ocr實現PDF轉文字

讀取函式 defocr path with open path,rb as f return f.read deflink ocr client,image for i in range 5 try dict1 client.basicgeneral image except continue el...