一、 筹备处事

安置对应的库

pip install pdfminer3k

pip install pdfminer.six

二、局部变量的含意

PDFDocument(pdf文书档案东西)

PDFPageInterpreter(证明器)

PDFParser(pdf文书档案领会器)

PDFResourceManager(资源处置器)

PDFPageAggregator(会合器)

LAParams(参数领会器)

代码示例

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# datetime:2021/3/17 12:12

# software: PyCharm

# version: python 3.9.2

def changePdfToText(filePath):

"""

领会pdf 文本,生存到同名txt文献中

param:

filePath: 须要读取的pdf文书档案的目次

introduced module:

from pdfminer.pdfpage import PDFPage

from pdfminer.pdfparser import PDFParser

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter

from pdfminer.converter import PDFPageAggregator

from pdfminer.layout import LAParams

from pdfminer.pdfdocument import PDFDocument, PDFTextExtractionNotAllowed

import os.path

"""

file = open(filePath, 'rb') # 以二进制读形式翻开

# 用文献东西来创造一个pdf文书档案领会器

praser = PDFParser(file)

# 创造一个PDF文书档案

doc = PDFDocument(praser, '') # praser :上头创造的pdf文书档案领会器 ,第二个参数是暗号,树立为空就好了

# 贯穿领会器 与文书档案东西

praser.set_document(doc)

# 检验和测定文书档案能否供给txt变换,不供给就忽视

if not doc.is_extractable:

raise PDFTextExtractionNotAllowed

# 创造PDf 资源处置器 来处置共享资源

rsrcmgr = PDFResourceManager()

# 创造一个PDF摆设东西

laparams = LAParams()

device = PDFPageAggregator(rsrcmgr, laparams=laparams)

# 创造一个PDF证明器东西

interpreter = PDFPageInterpreter(rsrcmgr, device)

result = [] # 实质列表

# 轮回遍历列表,历次处置一个page的实质

for page in PDFPage.create_pages(doc):

interpreter.process_page(page)

# 接收该页面包车型的士LTPage东西

layout = device.get_result()

for x in layout:

if hasattr(x, "get_text"):

result.append(x.get_text())

fileNames = os.path.splitext(filePath) # 分隔

# 以追加的办法翻开文献

with open(fileNames[0] + '.txt', 'a', encoding="utf-8") as f:

results = x.get_text()

# print(results) 这个句不妨废除解释就不妨在遏制台将一切实质输入了

f.write(results) # 写入文献

# 挪用示例 :

# path = u'E:\\1.pdf'

# changePdfToText(path)