页码位置、页码标签和打印数字是 PDF 中的不同数据。
PDF 子集可能具有正确内容但页码标签具有误导性,即使页面数量和文本提取检查均已通过。这是因为页面可以关联三个不同的值:其在文档中的位置、其逻辑标签(例如"i"、"1")以及页面本身打印的页码。在特定测试用例中,从六页源文档中提取的三页 PDF 内容正确,但继承了原始文档起始部分的逻辑标签,而非保留所选源页面的标签。原始源文档的标签为"COVER"、"i"、"1"、"2"、"A-1"、"A-2",所选页面位于源位置 3、4 和 6。然而,下载的 PDF 在输出页面 1、2 和 3 上分别显示标签"COVER"、"i"和"1",而非预期的"1"、"2"和"A-2"。这一差异表明,仅提取页面并不能自动重新映射或保留原始逻辑标签或打印页码。为此,开发了 Python 脚本"audit-labels.py",依据保留策略检查子集 PDF 的标签是否与其对应源页面的标签匹配。该脚本确认了测试用例中的标签不匹配。明确提取 PDF 子集的期望标签策略至关重要,即保留源标签还是生成新标签。此检查器仅关注标签保留,不验证渲染、书签或其他 PDF 特性。