如何找出字体中没有字母?

时间:2018-11-29 19:12:14

标签: java fonts itext itext7

如果我这样做:

PdfFont font = PdfFontFactory.createFont(font_without_a, PdfEncodings.IDENTITY_H, true);
System.out.println("font_without_a " + font.getWidth("a",17));
  

输出:font_without_a 5.848

字体没有字母“ a”

字体: enter image description here

  

https://dropmefiles.com/8lFiM

以字母a为例,可以是任何字符

1 个答案:

答案 0 :(得分:3)

  

如何找出字体中没有哪个字母?

您可以使用containsGlyph方法检查字体是否具有给定字符的字形。但是,该方法不会尝试确定字体中该字形的绘制指令是否以某种方式与所讨论的字符相关。

您共享的字体程序ArtScript.ttf 确实包含字母'a'的字形,即使该字形没有绘图指令。因此,PdfFont在被询问时正确输出true

System.out.println(font.containsGlyph('a'));

我实际上从您的字体程序here中删除了该字形。对于此字体,该行代码将输出false

在您所说的评论中

  

我了解即使没有字母,也会有一个带有边框的空白区域,但是可以以某种方式将其定义为空白区域吗?

实际上,您可以使用字体编辑器删除该字形,例如在FontForge中使用“剪切”或“分离并删除字形”,就像我在上面所做的那样。