Fonts 为什么即使我指定不嵌入,iText也会嵌入字体?
我正在使用Noto字体创建pdf,并希望嵌入字体而不是不嵌入字体。我的代码Fonts 为什么即使我指定不嵌入,iText也会嵌入字体?,fonts,itext,Fonts,Itext,我正在使用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", 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中的汉字
我的问题
如果您使用的是Identity-H,字体应嵌入,因为如果不忽略
嵌入的
参数,则iText将创建一个违反ISO-32000-1的PDF:
第9.7.5.2节:
Identity-H和Identity-V CMAP不得与非嵌入式字体一起使用
Adobe拥有大量关于PDF软件的专利。Adobe授予任何人免费使用这些专利的权利,条件是您创建符合PDF规范的PDF文件
如果您调整iText,使其不会嵌入带有Identity-H CMAP的字体,您将违反PDF规范,这也可能导致一些专利侵权。Perfect。解释一切。谢谢