检查字形是否呈现“正确”

检查字形是否呈现“正确”

问题描述:

我正在写一个tcl/tk应用程序,在那里我想使用字体真棒图标。检查字形是否呈现“正确”

原则上,这很好地工作:只显示与正确的Unicode字符的一些字符串/标签,如果安装了正确的字体,它会呈现)现在

,我的开发机器上,我有字体真棒作为普通机器安装。 我不能指望在部署机器上。

所以我想知道,系统是否可以渲染给定的字符,或者它是否只使用字形未找到的占位符。在后一种情况下,我只想回退到一些,不太好看...表示

(我不希望我的用户必须回答一个问题像“此字符串看起来是正确的?”)

例如符号“” ()在我的应用程序中显示为*-图标。在我的浏览器中,它呈现为字形未找到

那么,有没有一种方法来找出编程方式,如果任何(使用)系统字体提供给定字符的字形?

不幸的是,没有;它完全缺失功能。你可以得到的最接近的是得到一个字符的实际字体信息 - 需要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 

(字符呈现为glyph-在该系统上没有找到该字体的符号)。