由于历史的原因,PDF需要兼容各种Adobe设计的字体,比如Type0/Type1/TrueType/CID等等,并且其本身允许字体下载或是不下载,因此如果在一般情况下要达到PDF设计所要求的原版原式的显示,就需要解析器带上各种字体,否则只能用操作系统的字体进行替换,那就很难做到不同平台完全一致。
另外,PDF中还需要CMap表来解析编码和字体中字形索引之间的对应关系,这些都是放在比如Adobe Reader或者Acrobat的Resouce目录下的,这些数据也不是很小,所以,对于PDF的解析器来讲,字体这一块的负担是比较重的。
不过,一般PDF的阅读器,只要能保证绝大多数的PDF文件显示正确,不差的太远,是不会引发大的问题的,除非碰到一些特别“偏”的PDF,比如一些小语种的文字。所以,从整体考虑,与其像Acrobat那样搞一个庞大的块头,还不如尽量精简更有优势,因此,像Apabi Reader/Foxit Reader这样的PDF阅读器,和Adobe Reader相比,体积还是要小很多。
因此,我们在设计CEBX的时候,和PDF采用了完全不同的策略,在CEBX中,只支持OpenType类型的字体,这样使得解析器的负担尽可能的小,而把主要的工作尽量放入转换器端。