PDF CMaps:单字形到多字符映射

时间:2017-01-01 13:33:36

标签: ios macos pdf adobe

根据此article,以下CMap bfrange映射有效:

<02> <02> [<0066006C>]

这是否意味着PDF CMap解析器应该识别多字符十六进制并将其解析为02 = [0066, 006C]

我无法在PDF规范中找到任何证实此特定格式的内容,与明确提及的startChar endChar [destChar, ...]startChar endChar destChar不同。

1 个答案:

答案 0 :(得分:2)

  

我在PDF规范中找不到任何证实这种特定格式的内容

查看pdf规范ISO 32000-1第9.10.3节 ToUnicode CMaps 示例2:

2  beginbfrange 
< 0000 >< 005E >< 0020 >
< 005F >< 0061 >[ < 00660066 >  < 00660069 >  < 00660066006C > ]
endbfrange 
     

...

     

&LT; 00 00>到&lt; 00 5E&gt;映射到Unicode值U + 0020到U + 007E接下来是映射的定义,其中每个字符代码表示多个Unicode值:

< 005F >  < 0061 >  [ < 00660066 >  < 00660069 >  < 00660066006C > ]
     

在这种情况下,原始字符代码是连字ff,fi和ffl的字形索引。该条目定义了来自字符代码的映射&lt; 00 5F&gt;,&lt; 0060&gt;和&lt; 00 61>对于绑定中每个字符的Unicode标量值的Unicode值字符串:U + 0066 U + 0066是字符序列ff的Unicode值,U + 0066 U + 0069用于fi,U + 0066 U + 0066 U + 006c表示ff l。