【问题标题】:Acrobat Reader would like to re-design my PDF fileAcrobat Reader 想重新设计我的 PDF 文件
【发布时间】:2015-06-08 12:05:58
【问题描述】:

我正在制作自己的 PDF 解析器/制作器。目前,我能够解析现有的 PDF 文件,甚至可以根据早期解析的数据制作新的 PDF。但问题是,当我打开一个新的 PDF 文件(由我的解析器/制作者制作)时,Adobe Reader 想要重新设计文档(当我关闭文档时,Reader 建议我存储“更改的文档”)。当我的文档内部结构不正确时,我之前遇到过这样的问题。但是使用我的解析器的最新版本,我看不到文件结构有任何问题,需要询问“PDF 专家”。我应该说我通过在线 PDF 检查工具和 Adob​​e Reader Pro 进行了 PDF 结构检查。此外,我发现的所有现有 PDF 解析器都可以毫无问题地解析我的 PDF。我唯一遇到的问题是 Adob​​e Reader。

所以,我有两个文件:

  1. Initial PDF file;
  2. Secondary PDF file, made by my tool;

事实上,“二级 PDF”是初始 PDF 的简单副本,其内部 PDF 结构略有改变。当然,所有的“外部参照”偏移也发生了变化。这两个文件都非常简单,只有 18 个内部对象,其中大部分是字体对象。 “第二个 PDF”是 Adob​​e Reader 认为有缺陷的 PDF。

如果有人能给我一个链接,指向 PDF 文件的任何特定于 Reader 的规则(如果有的话),我将不胜感激。

【问题讨论】:

    标签: pdf pdf-generation


    【解决方案1】:

    _secondary.pdf 中的交叉引用表中的条目只有 19 个字节,而不是预期的 20 个字节

    每个条目的长度应为 20 个字节,包括行尾标记。

    您不是唯一生成此类文件的人,这就是为什么大多数阅读器/解析器都集成了后备或完全忽略 20 字节计数。

    无论如何,该文件应该被标记为损坏(Acrobat 所做的),因为它需要手动解析交叉引用表或完整文件。在这种情况下,解析器无法使用固定的条目大小直接跳转到交叉引用表中的对象偏移定义。

    【讨论】:

    • 非常感谢,简!这么小的问题(一个字节的差异),但我花了这么多时间来解决它。希望其他人会错过我的错误。
    猜你喜欢
    • 2017-12-16
    • 1970-01-01
    • 2018-04-03
    • 2012-03-10
    • 2018-06-26
    • 2012-01-08
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    相关资源
    最近更新 更多