⼆、效果
三、运⾏环境
python2.7
四、需要安装的库
pip install pdfminer
五、实现源代码
代码
1
(
win64
)
# coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import time
time1=time.time()
import os.path
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
result=[]
class CPdf2TxtManager():
def __init__(self):
'''''
Constructor
'''
def changePdfToText(self, filePath):
file = open(path, 'rb') #
以⼆进制读模式打开
#
⽤⽂件对象来创建⼀个
pdf
⽂档分析器
praser = PDFParser(file)
#
创建⼀个
PDF
⽂档
doc = PDFDocument()
#
连接分析器
与⽂档对象
praser.set_document(doc)
doc.set_parser(praser)
#
提供初始化密码
#
如果没有密码
就创建⼀个空的字符串
doc.initialize()
#
检测⽂档是否提供
txt
转换,不提供就忽略
if not doc.is_extractable:
raise PDFTextExtractionNotAllowed
#
创建
PDf
资源管理器
来管理共享资源
rsrcmgr = PDFResourceManager()
#
创建⼀个
PDF
设备对象
laparams = LAParams()
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
#
创建⼀个
PDF
解释器对象
interpreter = PDFPageInterpreter(rsrcmgr, device)
pdfStr = ''
#
循环遍历列表,每次处理⼀个
page
的内容
for page in doc.get_pages(): # doc.get_pages()
获取
page
列表
interpreter.process_page(page)
#
接受该页⾯的
LTPage
对象
layout = device.get_result()
for x in layout:
if hasattr(x, "get_text"):