如何获取有关TrueType字体的信息,以便填写MFC应用程序中的PDF flags。
在我的MFC应用程序中,我正在创建PDF并尝试嵌入用户选择的字体。我已经拥有了我的字体的OUTLINETEXTMETRIC 结构,但我仍然不知道如何检查字体是否为 Serif,Symbolic或Script。
任何帮助将不胜感激。
谢谢,抱歉我的英语。
答案 0 :(得分:2)
OUTLINETEXTMETRIC
有otmTextMetrics
成员,其中显示了Pitch和Family tmPitchAndFamily
来自MSDN
<强> lfPitchAndFamily 强>
成员的第4位到第7位指定字体系列,可以是一个 以下数值。FF_DECORATIVE FF_DONTCARE FF_MODERN FF_ROMAN FF_SCRIPT FF_SWISS
lfPitchAndFamily
应该与0xF0
一起获取家庭成员:
String family;
OUTLINETEXTMETRIC otm = { sizeof(OUTLINETEXTMETRIC) };
if(GetOutlineTextMetrics(hdc, otm.otmSize, &otm))
{
switch(otm.otmTextMetrics.tmPitchAndFamily & 0xF0)
{
case FF_ROMAN: family = "FF_ROMAN"; break;
case FF_SWISS: family = "FF_SWISS"; break;
case FF_MODERN: family = "FF_MODERN"; break;
case FF_SCRIPT: family = "FF_SCRIPT"; break;
case FF_DECORATIVE: family = "FF_DECORATIVE"; break;
}
}
预期产出:
"Arial": FF_SWISS
"Times New Roman": FF_ROMAN
"Old English Text MT": FF_SCRIPT