需要将pdf转成txt,先后尝试使用python库pdfminer与pyocr(tesseract)。
1. pdfminer:
没研究原理,识别效果还可以。但识别效果是按照各个区域块去识别文字,而不是按行识别,所以格式混乱时不太推荐。当文字在pdf上无法选中时,pdfminer也无法识别该文字。好像还可以用来识别表格之类的,没试过。代码如下:
先装库:pip install pdfminer3k
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice
from pdfminer.layout import LTTextBoxHorizontal, LAParams
def pdf2txt_miner(f_from, f_to):
# 按块识别, 可选中的文字
print(f'start: {f_from}')
fp = open(f_from, 'rb')
# 用文件对象来创建一个pdf文档分析器
praser = PDFParser(fp)
# 创建一个PDF文档
doc = PDFDocument()
# 连接分析器 与文档对象
praser.set_document(doc)
doc.set_parser(praser)
# 提供初始化密码
# 如果没有密码 就创建一个空的字符串
doc.initialize()