代码关注点:
0x00
当使用PDType0Font.load
进行外部字体读取的时候,
此静态方法内部包含的构造函数会调用
PDDocument
的成员函数registerTrueTypeFontForClosing()
将字体缓存至PDDocument.fontsToClose
成员中。
0x01
当使用PDPageContentStream.setFont()
时,
此成员函数会调用PDDocument
的成员函数getFontsToSubset().add()
将字体缓存到PDDocument.fontsToSubSet
成员中。
特性关注点:
0x00
默认是每一次PDType0Font.load()
都是全新的字库资源。
加载几个字体文件,PDDocument
的成员fontsToClose
便包含几个,不去除重。
0x01
如果PDPageContentStream.setFont()
的参数为一个全新字体对象,
PDDocument
的fontsToSubSet
成员便会加入这个,不去重。
总结:
库提供完善的文件句柄管理。但有关去重的考量,还是需要开发者来关注。