AdobePDF中的CID码:字符映射与Unicode编码的桥梁

CID(Character ID)是Adobe PDF格式中用于标识字符的唯一编号。在PDF文档中,字符通常使用Unicode编码,但是在文档内部,这些字符可能会被映射到CID码。CID码是PDF内部使用的一种字符编码方案,用于将字符标识为字形(Glyphs),这些字形在PDF中与字体相关联。

CID系统允许PDF文档在使用非标准字符集或特定的字体编码时仍能够正确显示文本内容。通过使用CID码,PDF文档可以使用各种字体,并且能够准确地在不同的平台和设备上显示文本。

CID码通常在CID字体文件中定义,并且由CID字体映射表指定Unicode字符到CID的映射关系。在PDF文档中,字符可以直接使用Unicode编码,也可以使用CID码进行标识,这取决于文档的创建方式以及所使用的字体。

这段代码是用于定义一个字符映射(Character Mapping)的部分,它将Unicode字符代码映射到CID(Character ID)码,用于在PDF文档中嵌入和显示文本。

/CIDInit /ProcSet findresource begin

12 dict begin

begincmap

/CIDSystemInfo <> def

/CMapName /Adobe-Identity-UCS def

/CMapType 2 def

1 begincodespacerange

<0000>

endcodespacerange

10 beginbfchar

<0003> <0020>

<0004> <0021>

<0005> <0022>

<002B> <0048>

<0047> <0064>

<0048> <0065>

<004F> <006C>

<0052> <006F>

<0055> <0072>

<005A> <0077>

endbfchar

endcmap CMapName currentdict /CMap defineresource pop end end

具体来说,这段代码中:

/CIDInit /ProcSet findresource begin:开始查找CID初始化资源。

12 dict begin:开始定义一个包含12个条目的字典。

begincmap:开始字符映射定义。

/CIDSystemInfo <> def:设置CID系统信息。

/CMapName /Adobe-Identity-UCS def:设置字符映射名称。

/CMapType 2 def:设置字符映射类型。

1 begincodespacerange <0000> endcodespacerange:设置字符范围,从U+0000到U+FFFF。

10 beginbfchar:开始定义字符到CID的映射。

接下来的10对 是将Unicode字符代码映射到CID码的关系。

endbfchar:结束字符到CID的映射。

endcmap:结束字符映射定义。

CMapName currentdict /CMap defineresource pop end end:定义并保存字符映射资源。

这段代码定义了一种称为Adobe-Identity-UCS的字符映射,用于将Unicode字符代码映射到CID码。