谁能帮我吗?

提前致谢。

代码:

from PyPDF2 import PdfFileReader

def text_extractor(path):
    with open(path, 'rb') as f:

        pdf = PdfFileReader(f)
        page = pdf.getPage(2)
        print(page)
        text = page.extractText().encode('utf-8')
        print(text)

if __name__ == '__main__':

    path = '/home/ubuntu/Desktop/hi.pdf'
    text_extractor(path)


输出:


{'/父母':IndirectObject(137,0),'/ CropBox':[0,0,960,540],'/ Rotate':0,'/ Resources':{'/ ColorSpace':{'/ CS0 ':IndirectObject(155,0)},'/ XObject':{'/ Im0':IndirectObject(6,0),'/ Im1':IndirectObject(8,0)},'/ Font':{'/ TT1 ':IndirectObject(132,0),'/ TT0':IndirectObject(157,0),'/ TT2':IndirectObject(159,0)},'/ ProcSet':['/ PDF','/ Text', '/ ImageC']},'/ Contents':IndirectObject(5,0),'/ MediaBox':[0,0,960,540],'/ Type':'/ Page'}

b'65#-\'\ n!C,%03D \ n!9 $ * 0&30%30 \ n!E $ 34&,%&$ AA(#6 $ /#,%\ n!F0?860?&3 $ -A(#%:\ n!G + $ /&2 $“#$ H(0I($ 40”&@#((&4,8&830 \ n!G + $ /&#3&4,8&(#-#/#% :&2 $“#$ H(0 \ n!J,@&/,&+ $%?(0K&E20” 4 / +#%:&0(30 \ n'

最佳答案

您用问题陈述让我有些失望,但实际上它比您指出的要基本得多。您正在使用编码明确请求字节序列。请查看encoding的官方文档。

从文档中:


将Unicode字符串转换为字节序列的规则称为编码。


如果出于某种原因需要一个字节字符串,则相反的decode缺省为UTF-8。在您的情况下,这不是必需的,因为docs指出您应该从extractText()命令获取Unicode字符串。

编辑:阐明了有关解码的更多信息。

关于python-3.x - 无法使用Pypdf阅读pdf文件。它以字节码显示输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51670517/

10-12 23:54