【发布时间】:2018-12-23 14:18:33
【问题描述】:
这可能是一个相当基本的问题,但我很难弄清楚,它可能对未来的访问者有用。
我想获取 PDF 文件中的原始数据,并且我已经使用 Python 库 PyPDF2 使用以下命令对页面进行了解码:
import PyPDF2
with open('My PDF.pdf', 'rb') as infile:
mypdf = PyPDF2.PdfFileReader(infile)
raw_data = mypdf.getPage(1).getContents().getData()
print(raw_data)
查看提供的原始数据,我开始怀疑回车前的 ASCII 字符很重要:我看到的每个回车前都有一个。看起来它们可能是某种令牌标识符。我已经发现/RelativeColorimetric 与序列ri\r 相关联。我目前正在查看PDF 1.7 standard Adobe provides,我知道在某处有解释,但我还没有在那个 756 页的庞然大物文档中找到它
【问题讨论】:
-
提示:将最后一行更改为
print(raw_data.decode('latin1'))以获得更好的视图,而不是现在返回的b字符串。 -
@usr2564301 解码后的字符串似乎不起作用,可能是因为在尝试显示期间回车会将所有内容重置到行首;无论如何,我对二进制字符串格式很好,因为我可以在需要时进一步处理它们。但如果我确实使用了该建议,我可能会对其进行调整以将输出字符串中的
\r替换为其他内容。 -
你是对的!我从我尝试过的 PDF 中得到了
\ns,但我可以看到\r行尾会如何弄乱你的显示。祝您调查顺利!