【发布时间】:2019-03-29 15:36:25
【问题描述】:
我为 pdf 文件编写了以下 Hello 代码。
%PDF-1.4
1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
2 0 obj
<< /Kids [3 0 R] /Count 1 >>
endobj
3 0 obj
<< /Parent 2 0 R /Contents 4 0 R >>
endobj
4 0 obj
<< /Length 20 >>
stream
BT
/F1 40 Tf
100 600 Td
(Hello!) Tj
ET
endstream
endobj
trailer
<< /Root 1 0 R
/Size 3
>>
%%EOF
我想知道xref这个表是怎么计算出来的?\
第三次评论后更新:
我可以写一个如下表吗?
xref
0 3
0000000000 65536 f
0000000001 00000 n
0000000002 00000 n
0000000003 00000 n
这有什么问题(如果有的话)?
page 中的示例表明外部参照中的对象之间存在差异(大于 1)。但是,尚不清楚为什么第一个对象的偏移量为 15,而第二个对象的偏移量为 87。这些数字是如何计算出来的?
【问题讨论】:
-
您提到了 ISO 32000。如何简单地创建那里描述的交叉引用表?与 PDF 的一些细节相比,其中的交叉引用表规范非常简单易懂。话虽如此,即使有交叉引用表,您的文件也会缺少页面媒体框和页面资源(包括您引用的字体 F1)。
-
第 7.5.4 节解释了外部参照。但我想知道如何计算列值。我无法理解!
-
你到底有什么不明白的?对于 n 类型的条目,您首先有一个“10 位数字,必要时用前导零填充,给出从文件开头到对象开头的字节数”,然后是空格,然后是“5 位代号”(在您的 PDF 文本中,所有代值都是 0),然后是空格,然后是“n”,然后是“2 个字符的行尾序列”。
-
问题不在于外部参照中有多少列?!!我想知道偏移量(第一列)是计算出来的。查看更新后的帖子。
-
引用我之前的评论:“从文件开头到对象开头的字节数”