微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 3.7中的fitz.Document解码问题

如何解决Python 3.7中的fitz.Document解码问题

我想提取pdf文本并使用一些常规wxpression来过滤信息。 我正在使用fitz在Python 3.7.4中进行编码以解析pdf。 PDF是用德语编写的。我的代码如下:

doc = fitz.open(pdfpath)
pagecount = doc.pageCount
page = 0
content = ""

while (page < pagecount):
    p = doc.loadPage(page)
    page += 1
    content = content + p.getText()

打印内容时,我意识到文档的前半部分(也是重要的部分)被解码为日语(?)符号和其他符号的奇怪组合,如下所示:ョ。 オ ウ キ ・ ゥ エ オ ョ ァ @ ュ。 我尝试通过不同的解码方式(latin-1,'iso-8859-1')解决该问题,编码肯定是在utf-8中进行的。

content= content+p.getText().encode("utf-8").decode("utf-8")

有什么建议吗? 预先感谢!

编辑: 我也尝试过使用minecart获取文本:

import minecart

file = open(pdfpath,'rb')

document = minecart.Document(file)

for page in document.iter_pages():
    for lettering in page.letterings :
        print(lettering)

..这会导致相同的问题。

使用textract,前半部分是一个空字符串:

import textract

text = textract.process(pdfpath)
print(text.decode('utf-8'))

PyPDF2相同:

import PyPDF2

    
pdfFileObj = open(pdfpath,'rb')

pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
for index in range(0,pdfReader.numPages) :
    pageObj = pdfReader.getPage(index)
    print(pageObj.extractText())

我没问题,因为它看起来像是带有普通文本的普通PDF。另外,某些pdf也不存在此问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。