PDF代码中双角括号(<<...>>)的使用场景与规则问询
PDF中双角括号<<...>>的使用规则
核心本质
<<...>>是PDF语法里**字典对象(Dictionary Object)**的专属定界符——字典就是PDF用来存储键值对集合的核心数据结构,所有字典都必须用这对符号包裹。
具体使用规则
- 必须使用的场景:只要你要定义一组键值对组成的字典,就得用<<开头、>>结尾,把所有键值对包在里面。
比如你第一段能正常运行的代码里,/GS对应的<< /ca 1 /CA 1 >>就是一个字典,它包含/ca和/CA两个键值对,必须用双角括号告诉解析器:这是一个完整的字典对象。 - 不需要使用的场景:如果内容是单个PDF基础数据类型,就不需要包裹:
- 名称对象(比如/Type、/Page)
- 数值(比如1、0.25)
- 对象引用(比如3 0 R、5 0 R)
- 数组(比如[0 0 612 792])
你的代码为什么报错
第二段代码无法运行,问题出在/GS /ca 1 /CA 1这部分:
- /GS是ExtGState字典里的键,它对应的值必须是一个字典(包含/ca和/CA两个键值对),但你直接把这两个键值对裸写出来,没加<<>>包裹成字典。
- PDF解析器会把/ca、1、/CA、1当成四个独立的元素,根本认不出它们是/GS对应的完整值,自然解析失败。
内容的提问来源于stack exchange,提问作者m s
相关产品推荐
相关产品推荐

