PDF FontDescriptor Flags

时间:2018-05-18 19:14:09

标签: pdf winapi mfc

如何获取有关TrueType字体的信息,以便填写MFC应用程序中的PDF flags

在我的MFC应用程序中,我正在创建PDF并尝试嵌入用户选择的字体。我已经拥有了我的字体的OUTLINETEXTMETRIC 结构,但我仍然不知道如何检查字体是否为 Serif,Symbolic或Script。

任何帮助将不胜感激。
谢谢,抱歉我的英语。

1 个答案:

答案 0 :(得分:2)

OUTLINETEXTMETRICotmTextMetrics成员,其中显示了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