为什么在pdf strcuture中使用%符号

时间:2017-03-16 05:42:52

标签: security pdf malware pdf-form

我有一个关于pdf结构的问题,为什么在pdf中使用%符号。

我得到了一些结果,他们提到%符号用于评论,但如果我们使用%符号进行评论,那么%%PDF-1.5中使用的%%EOF符号呢? {1}}?

%PDF-1.5定义文件的标题和

%%EOF定义了pdf结构的结尾。

那么为什么{1}}符号用于PDF-1.5,为什么%符号在EOF中使用了2次?

从结果中我知道%符号用于评论,那么为什么上述两个词的不同之处呢?

我们将非常感谢您的帮助 - 谢谢

2 个答案:

答案 0 :(得分:0)

我实际上对pdf结构一无所知或正确使用%,但它似乎与shebang #!具有相同的原因,后面是shell脚本中需要可执行文件,如bash,perl甚至python。

此处的堆栈溢出答案可以阅读更多内容,了解为什么bash脚本需要脚本开头的#!https://stackoverflow.com/a/8968514/6037755

答案 1 :(得分:0)

  

为什么%符号用于PDF-1.5,为什么%符号在EOF中使用了2次?

     

从结果中我知道%符号用于评论,那么为什么上述两个词的不同呢?

您可以认为这些条目实际上是是评论(毕竟它们不包含用于PDF渲染的任何PDF对象),您需要放置在PDF文件的某些位置。

根据ISO 32000-1规范:

  

7.5.2文件标题

     

PDF文件的第一行应为标题,其中包含5个字符%PDF - ,后跟 1.N格式的版本号,其中N是0到7之间的数字。

  

7.5.5文件预告片

     

PDF文件的预告片使符合本标准的阅读器能够快速找到交叉引用表和某些特殊对象。合规读者应从其末尾阅读PDF文件。文件的最后一行应仅包含文件结束标记 %% EOF

这里使用“shall”表示这些是要求。

在所有其他方面,这些标记确实是有意义的。

在PDF处理器开始使用实际PDF对象之前,仅为了识别PDF的开头和结尾,这些标记具有特殊含义。一旦识别出开始和结束,就必须忽略这些标记。因此,制作这些标记评论是一个明显的选择。

对于不寻常的处理类型也是如此。例如。如果由于某种原因,PDF的交叉引用被破坏而某些程序试图通过搜索间接PDF对象来重新创建它们,则不需要专门处理这些标记,它会自动将它们忽略为注释。

PS 根据Adobe参考文献附件H中的Adobe实施说明,他们的工具也接受另一种标题:

  

3.4.1,“文件标题”

     

[...]

     

14.Acrobat查看者也接受表格

的标题
%!PS−Adobe−N.n PDF−M.m

如果您想了解标记注释内容的选择原因,那么您应该查看PDF和Postscript的历史记录