谁能帮我吗?
提前致谢。
代码:
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/