代码之家  ›  专栏  ›  技术社区  ›  PyRsquared

PyPDF2在读取pdf时创建非字母数字字符

  •  0
  • PyRsquared  · 技术社区  · 8 年前

    我正在使用 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 回复  |  直到 8 年前
        1
  •  1
  •   J. Owens    8 年前

    如果没有正在解析的PDF示例,很难说为什么会出现奇怪的字符。我在Python 3中使用PyPDF2时也遇到了问题。x、 我找到了 PyMuPDF 对于大多数与PDF相关的任务来说都是优秀的。你可以试试 extracting text 使用它可以查看在文本提取过程中是否有相同的字符。