pdf文件读写,仅能处理文字

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文件,仅能处理文字,无法处理图片
def readPDF(path,topath):
with open(path,'rb') as f: #用二进制打开

# #创建parser为pdf文件分析器
parser = PDFParser(f)
#创建一个pdf文档
pdfFile = PDFDocument()

#连接分析器与文档对象
parser.set_document(pdfFile)
pdfFile.set_parser(parser)
#提供初始化密码
pdfFile.initialize()

#检测文档是否提供txt转换
if not pdfFile.is_extractable:
raise PDFTextExtractionNotAllowed
else:
#解析数据
#数据管理器
manager = PDFResourceManager()
#创建一个PDF设备的对象
laparams = LAParams
device = PDFPageAggregator(manager,laparams=laparams)
interpreter = PDFPageInterpreter(manager,device) #解释器对象

#循环处理数据,每次处理一页
for page in pdfFile.get_pages():
interpreter.process_page(page)
layout = device.get_result()
for x in layout: #处理图层
if (isinstance(x,LTTextBoxHorizontal)):
with open(topath,'a') as f:
str = x.get_text()
# print(str)
f.write(str+"\n")










posted @ 2019-03-22 15:43  涵瘦瘦  阅读(138)  评论(0)    收藏  举报