我正在使用Noto字体创建pdf并查看嵌入字体而不嵌入字体。我的代码
FontFactory.register("c:/temp/fonts/NotoSansCJKsc-Regular.otf", "my_nato_font");
Font myBoldFont = FontFactory.getFont("my_nato_font", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
当我创建pdf并执行CTRL + D时,我可以看到字体已嵌入。
然而,一旦我选择了
FontFactory.register("c:/temp/fonts/NotoSansCJKsc-Regular.otf", "my_nato_font");
Font myBoldFont = FontFactory.getFont("my_nato_font");
文件大小减小,字体未嵌入。现在我看不到我添加到pdf中的汉字。
我的问题
答案 0 :(得分:3)
您正在使用Identity-H,嵌入字体 ,因为如果embedded
参数不被忽略,iText将创建违反的{ ISO-32000-1:
Adobe拥有大量有关PDF软件的专利。 Adobe授予任何人免费使用这些专利的权利,条件是您创建符合PDF规范的PDF文件。第9.7.5.2节:
Identity-H和Identity-V CMaps不得与非嵌入字体一起使用。
如果您要调整iText以便它不会使用Identity-H CMaps嵌入字体,那么您将违反PDF规范,这也可能导致一些专利违规行为。