ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – pdfminer上的警告

2019-07-28 01:56:24  阅读:1023  来源: 互联网

标签:python python-3-x pdf pdfminer


我已经发现并(稍微)修改了stackoverflow中的这个脚本,以便它可以在python 3.3上运行:

from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIO

def convert_pdf(path):

    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, laparams=laparams)

    fp = open(path, 'rb')
    process_pdf(rsrcmgr, device, fp)
    fp.close()
    device.close()

    string = retstr.getvalue()
    retstr.close()
    return string


print(convert_pdf('abc.pdf'))

它工作正常,但我似乎有两个问题:

>在运行脚本时,我收到了大量警告:

警告:root:undefined:PDFCIDFont:basefont =’LKOELN Wingdings-Regular’,cidcoding =’Adobe-Identity’,139
警告:root:undefined:PDFCIDFont:basefont =’LKKPCF Wingdings2′,cidcoding =’Adobe-Identity’,132

在印刷文本中看起来像(cid:139),如何捕获此警告并用其他内容替换该文本?

>请注意,我有一个编解码器行,在原始脚本中进入TextConverter(rsrcmgr,retstr,laparams = laparams),但是我得到:

Traceback(最近一次调用最后一次):
  文件“C:/Users/rodrigo/Desktop/csp_pdf/csp_pdf2.py”,第46行,在
    convert_pdf( ‘abc.pdf’)
  在convert_pdf中输入文件“C:/Users/rodrigo/Desktop/csp_pdf/csp_pdf2.py”,第33行
    device = TextConverter(rsrcmgr,retstr,codec =’utf-8′,laparams = laparams)
TypeError:init()得到一个意外的关键字参数’codec’

这与第一期有关吗?

谢谢!

解决方法:

不幸的是,Pdfminer3k记录到Python根记录器. PDFMiner应该正确实现日志记录恕我直言.因此无法以正常方式禁用日志记录.

logging.getLogger("pdfminer").setLevel(logging.WARNING)

坏消息!

我这样做了,它有效™:

    logging.propagate = False 
    logging.getLogger().setLevel(logging.ERROR)

它将根记录器设置为级别错误.这将停止PDFMiner警告日志记录,因为它记录到根记录器,但不记录您自己的日志记录.

我需要将传播设置为False,因为在使用PDFMiner之后,我有重复的日志记录条目.这是由根记录器引起的.

标签:python,python-3-x,pdf,pdfminer
来源: https://codeday.me/bug/20190728/1558993.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有