这是我第一次在这个级别上使用 PDF。所以请耐心等待我的菜鸟问题。我基本了解 PDF 文件的逻辑和物理结构。
我有一个包含需要替换的虚拟 ID 的 PDF。为了检查,如果有办法做到这一点,我使用 qpdf 来扩展 PDF 使用
qpdf --qdf --object-streams=禁用 orig.pdf 扩展.pdf
使用十六进制编辑器,我在 expand.pdf 中找到了虚拟 ID,并通过简单地交换两位数来更改值
<001800180017> Tj => <001700170018> Tj
并保存了它。在 Acrobat 中打开扩展的.pdf 没有显示修改。原始 ID 443 仍然呈现,但搜索“443”没有找到它。当搜索修改后的内容“334”时,我会突出显示呈现的原始 ID 443。
PDF由文本和矢量图形组成。当我插入额外的数字(这显然会使外部参照中的偏移量无效)时,我收到一条关于缺少字体的错误消息,并且所有数字都显示为点,但矢量图形仍然存在。这似乎表明 ID 不是图形的一部分。
我错过了什么?
编辑 1:在 mkl 的评论之后,我对我的 PDF 进行了更深入的分析,发现除了明显的图形内容之外,所有文本都是由一系列 m/l/c 命令呈现的,后面是 BT/ET 部分。在 BT/ET 部分,中风和非中风的颜色均为 0,0,0。
这是因为使用了嵌入的非标准字体吗?带有嵌入字体的 PDF 通常是这样完成的吗?用于视觉表示的图形部分和透明(隐藏)文本部分只是为了获得搜索和突出显示功能?
回想起来,我想知道当我第一次修改内容时我做了什么来得到这些点。我似乎不可能,我也无法重现它。
谢谢汤姆