我的总体目标是使一些 PDF 文件符合 PDF/A 标准以用于存档目的。它们不符合一项要求,即某些字形映射映射到 0,这是它们不应该的。
我通常的策略是使用一个名为“Pdfedit”的旧软件,它可以解码 PDF 文件,然后所有字节流都将是人类可读的,编辑包含字形映射的 PDF 的相关部分,然后用 Adobe 打开文件自动重新编码的 Acrobat。
现在我有一些 PDF 在打开时会导致“Pdfedit”崩溃。我尝试使用PDF-Parser,但 Adobe Acrobat 无法重新编码其输出。
此外,过去看起来像这样解码的相关部分:
/CMapType 2 def
1 begincodespacerange
<00><04>
endcodespacerange
5 beginbfchar
<00><0000>
<01><0000>
<02><263A>
<03><0000>
<04><0000>
endbfchar
endcmap
但现在我使用以下命令python3 pdf-parser.py -f -n /path/to/file.pdf > dump.txt
,在 dump.txt 中相关部分如下所示:
b'/CMapType 2 def\n1 begincodespacerange\n<00><04>\nendcodespacerange\n5 beginbfchar\n<00><0000>\n<01><0000>\n<02><263A>\n<03><0000>\n<04><0000>\nendbfchar\nendcmap\nCMapName currentdict/CMap defineresource pop end end'
所以它是一个字节串,任何换行符都按字面意思呈现为\n
. Adobe Acrobat 无法将包含此内容的 txt 文件解释为 PDF。
我现在也意识到许多元素,例如由 .%%EOF
分隔''
。
真正的问题是如何从 pdf-parser.py 获得 Acrobat 可读的输出,因为 shell 命令>
不起作用并且 shell 中的 stdout 也有问题。
我会尝试一些事情,但可能真的需要一些帮助!