在阅读PDF格式时,PyPDF2正在创建非字母数字字符

时间:2018-05-14 15:46:04

标签: python pdf

我正在使用PyPDF2包来读取PDF文件。但是,当它读入PDF文件时,会出现许多原始PDF文件中不存在的非字母数字字符。

例如,我在pdf中有行;

PDF(完全复制和粘贴):

“这一年实际上比预期更令人困惑。但它也让我越来越相信 大量案件都是假的。“

Python(关注this example):

import PyPDF2
pdfFileObj = open("file.pdf","rb")
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
pageObj = pdfReader.getPage(1)
pageObj.extractText()
>>> '˝e year has actually turned out to be more confusing than expected. 
 But it also leaves me increasingly convinced that a 
 \nsigni˜cant num˛ber of cases were false.'

我理解新行的“\ n”。没关系。但为什么会出现˝以及˛等字符?

我需要使用另一个参数PyPDF2.PdfFileReader()正确读取文件,没有这些额外的字符吗?

我知道我可以使用正则表达式来删除这些特殊字符,但我更喜欢在没有它们的情况下读取文件。这是特别糟糕的情况,因为有时单词的部分被这些特殊字符所取代;在上面的示例中,我们看到单词“The”变为“˝e”,如果我想要解析此文本并获取字数等,那就不好了。这将是如果特殊字符只出现在标点符号的位置,那就好了,但它似乎没有遵循那个逻辑 - 特殊字符只是出现在随机位置。

或者,是否有另一个我可以用于python 3.6的包读取PDF文件(textract似乎只适用于python 2.x)?

1 个答案:

答案 0 :(得分:1)

如果没有您正在解析的PDF样本,很难说奇数字符出现的原因。我在Python 3.x中使用PyPDF2也遇到了问题。我发现PyMuPDF对于大多数与PDF相关的任务来说都是优越的。您可以尝试使用extracting text来查看文本提取过程中是否有相同的字符。