我的问题是关于pdf文件中使用的语法。文档(PDF32000_2008.pdf,pdf_reference_1-7.pdf)指出空白是什么:
空白字符
分隔PDF句法的字符 彼此之间的名称和数字等构造;空格 字符是水平制表符(09h),行进纸(0Ah),格式进纸(0Ch), 回车(0Dh),空格(20h); (请参见7.2.2“字符”中的表1 设置”)
注意: 请注意,空格是指pdf文件的数据/内容(即,当使用编辑器vim
打开时),而不是呈现的演示文稿(即,当在pdf阅读器中查看)
据我了解,这意味着这是一个有效的PDF对象
1 0 obj
<< /Type /Catalog
/Pages 2 0 R
>>
endobj
在(name)
类型的两个对象之间:/Type
和/Catalog
之间有一个SPACE (20h)
字符,满足引用的目的,即“分离[这两个] PDF句法”构造”。
但是事实证明,我可以省略空白,同时仍然产生相同的渲染结果(在pdf.js
和evince
程序中)。因此,我的问题是这等效于上面显示的代码
1 0 obj
<< /Type/Catalog/Pages 2 0 R>>
endobj
答案 0 :(得分:1)
是的,这是合法的。
在描述空格字符之后,您会发现以下内容:(添加了重点)
定界符
(
,)
,<
,>
,[
,]
,{ {1}},{
,}
和/
是特殊的。它们分隔语法实体,例如字符串,数组,名称和注释。这些字符中的任何一个终止于其前面的实体,并且不包含在实体中。
因此,%
之前不需要空格。