#首先需要在cmd用 pip 安装pdfminer3k
如:
#pip list 可以看用pip 安装的所有东西
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
def readPDF(path,topath):
#以二进制形式打开pdf文件
f=open(path,'rb')
#创建一个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:
str1=x.get_text()
#操作
print(str1)
f.write(str1+'\n')
path=r'I:\1.pdf'
topath=r'I:\a.txt'
readPDF(path,topath)