我有这个示例 PDF 文件:
我试图附加一个文本注释,结果如下:
但是,MAC OSX 上的预览仍然显示没有新注释的文档,Adobe Reader 甚至无法打开带注释的文档,说明:
打开此文档时出错。文件已损坏,无法修复。
到目前为止,我非常幸运地注释了具有“经典 XREF 表”而不是编码的其他文件。但是,编写我自己的编码 XREF 流似乎不起作用。我很确定我的流没问题,但它仍然可能是我缺少的其他东西吗?
我有这个示例 PDF 文件:
我试图附加一个文本注释,结果如下:
但是,MAC OSX 上的预览仍然显示没有新注释的文档,Adobe Reader 甚至无法打开带注释的文档,说明:
打开此文档时出错。文件已损坏,无法修复。
到目前为止,我非常幸运地注释了具有“经典 XREF 表”而不是编码的其他文件。但是,编写我自己的编码 XREF 流似乎不起作用。我很确定我的流没问题,但它仍然可能是我缺少的其他东西吗?
我不知道你是用哪个软件添加注释的,但你应该把它扔掉,永远不要再使用它。为什么?因为它没有在预告片中添加 startxref 条目,因此违反了 ISO-32000-1。即使具有压缩交叉引用表的文件也需要这样的条目。
阅读 ISO-32000-1 的第 7.5.8 节,标题为“Cross-Reference Streams”:
startxref 关键字后面的值应该是交叉引用流的偏移量,而不是 xref 关键字。对于完全使用交叉引用流的文件(即不是混合引用文件的文件),将不再使用关键字 xref 和预告片。因此,除了 startxref 地址、%%EOF 段和注释之外,一个文件可能完全是一个对象序列。