【问题标题】:PDF Indirect references and incremental updatesPDF 间接引用和增量更新
【发布时间】:2026-01-16 20:10:02
【问题描述】:

阅读PDF 1.7 reference,我想知道第 99 页上的这句话:

当消费者应用程序读取文件时,它必须以这样一种方式构建其交叉引用信息,即每个对象的最新副本就是文件中访问的那个。

假设一个字典 (3 0 obj) 引用了一个间接对象 4 0 R。如果您逐步更新此对象以生成4 1 obj 会怎样?当 PDF 阅读应用程序读取 3 0 obj 的引用 4 0 R,但在其内部外部参照表中仅包含有关 4 1 obj 的信息时 - 使用 4 1 obj 仍然正确吗?还是在更新间接对象时必须更新所有引用对象?

【问题讨论】:

    标签: pdf


    【解决方案1】:

    “PDF 32000-1:2008 - 7.3.10 间接对象”声明:

    […] 对象编号和世代编号的组合应唯一标识间接对象。 […]

    如果您更新对象,您不得更新代号! 仅当按照“PDF 32000-1:2008 - 7.5.4 交叉引用表”中所述删除对象时,才会发生世代编号更新:

    […] 当一个间接对象被删除时,它的交叉引用条目应该被标记为空闲[…]。条目的世代号应加 1,以指示下次创建具有该对象号的对象时要使用的世代号。

    【讨论】: