检查是否呈现字形 "correctly"

check if glyph is rendered "correctly"

我正在编写一个 tcl/tk 应用程序,我想在其中使用超赞的字体图标。

原则上,这很好用:只需显示一些 string/label 和正确的 unicode 字符,如果安装了正确的字体,它就会呈现)

现在,在我的开发机器上,我像普通机器一样安装了 font-awesome。 我不能指望在部署机器上。

所以我想知道系统是否可以呈现给定的字符,或者它是否只使用 glyph-not-found 占位符。在后一种情况下,我会退回到一些不太好的表示...

(我不希望我的用户必须回答像 "does this string look correct?" 这样的问题)

例如符号“”() 在我的应用程序中显示为 Whosebug 图标。在我的浏览器中,它呈现为 glyph-not-found.

那么,有没有办法以编程方式找出(使用的)系统字体是否提供给定字符的字形?

很遗憾,没有;它完全缺少功能。您可以获得的最接近的是获取字符的实际字体信息——我认为需要 8.6——或者测量它的宽度,但这并没有真正帮助:

% font actual TkFixedFont
-family Monaco -size 11 -weight normal -slant roman -underline 0 -overstrike 0
% font actual TkFixedFont \uf16c
-family Monaco -size 11 -weight normal -slant roman -underline 0 -overstrike 0
% font measure TkFixedFont \uf16c
14

(该字符在此系统上使用该字体呈现为未找到的字形符号。)