我的问题是关于pdf文件中使用的语法。文档(PDF32000_2008.pdf,pdf_reference_1-7.pdf)说明了什么是空格:
白色空间的特征 将PDF语法结构(如名称和数字)彼此分开的字符;空白字符是水平标签(09h),LINE FEED(0Ah),FORM FEED(0Ch),CARRIAGE RETURN(0Dh),SPACE(20h); (见7.2.2中的表1,“字符集”)
注意:请注意,空格是指pdf文件的数据/内容(即使用编辑器qazxsw poi打开时)而不是呈现的演示文稿(即在pdf阅读器中查看时)
据我所知,这意味着这是一个有效的PDF对象
vim
在1 0 obj
<< /Type /Catalog
/Pages 2 0 R
>>
endobj
类型的两个对象之间:(name)
和/Type
有一个/Catalog
字符,满足引用的目的“分离[这两个] PDF语法结构”。
然而事实证明,我能够省略空白,同时仍然产生相同的渲染结果(在SPACE (20h)
和pdf.js
程序中)。因此,我的问题是这是上面显示的代码的等效替代
evince
是的,这是合法的。
在描述空格字符后,您会发现以下内容:(强调添加)
分隔字符
1 0 obj << /Type/Catalog/Pages 2 0 R>> endobj
,(
,)
,<
,>
,[
,]
,{
,}
和/
都很特别。它们分隔语法实体,如字符串,数组,名称和注释。这些字符中的任何一个都会终止其前面的实体,并且不包含在实体中。
所以你在%
之前不需要空格。