gpt4 book ai didi

python - 关于 pdfminer 的警告

转载 作者:太空狗 更新时间:2023-10-30 01:58:21 27 4
gpt4 key购买 nike

我在 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'))

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

  • 在运行脚本时我收到大量警告:

    警告:root:undefined: PDFCIDFont: basefont='LKOELN+Wingdings-Regular', cidcoding='Adobe-Identity', 139
    警告:根:未定义:PDFCIDFont:basefont='LKKPCF+Wingdings2',cidcoding='Adobe-Identity',132

打印文本中的哪个看起来像 (cid:139),我如何捕获此警告并将该文本替换为其他内容?

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

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

这与第一个问题有关吗?

谢谢!

最佳答案

不幸的是,Pdfminer3k 记录到 Python root 记录器。 PDFMiner 应该正确实现日志记录恕我直言。所以不可能以正常方式禁用日志记录。

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

糟透了!

我这样做了,效果很好™:

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

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

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

关于python - 关于 pdfminer 的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29762706/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com