コード例 #1
0
void CFX_FontMapper::AddInstalledFont(const CFX_ByteString& name, int charset) {
  if (!m_pFontInfo)
    return;

  m_FaceArray.push_back({name, static_cast<uint32_t>(charset)});
  if (name == m_LastFamily)
    return;

  const uint8_t* ptr = name.raw_str();
  bool bLocalized = false;
  for (int i = 0; i < name.GetLength(); i++) {
    if (ptr[i] > 0x80) {
      bLocalized = true;
      break;
    }
  }

  if (bLocalized) {
    void* hFont = m_pFontInfo->GetFont(name.c_str());
    if (!hFont) {
      int iExact;
      hFont = m_pFontInfo->MapFont(0, 0, FXFONT_DEFAULT_CHARSET, 0,
                                   name.c_str(), iExact);
      if (!hFont)
        return;
    }

    CFX_ByteString new_name = GetPSNameFromTT(hFont);
    if (!new_name.IsEmpty())
      m_LocalizedTTFonts.push_back(std::make_pair(new_name, name));
    m_pFontInfo->DeleteFont(hFont);
  }
  m_InstalledTTFonts.push_back(name);
  m_LastFamily = name;
}
コード例 #2
0
ファイル: fx_ge_fontmap.cpp プロジェクト: kakajika/loilo-pdf
void CFX_FontMapper::AddInstalledFont(const CFX_ByteString& name, int charset)
{
    if (m_pFontInfo == NULL) {
        return;
    }
    if (m_CharsetArray.Find((FX_DWORD)charset) == -1) {
        m_CharsetArray.Add((FX_DWORD)charset);
        m_FaceArray.Add(name);
    }
    if (name == m_LastFamily) {
        return;
    }
    FX_LPCBYTE ptr = name;
    FX_BOOL bLocalized = FALSE;
    for (int i = 0; i < name.GetLength(); i ++)
        if (ptr[i] > 0x80) {
            bLocalized = TRUE;
            break;
        }
    if (bLocalized) {
        void* hFont = m_pFontInfo->GetFont(name);
        if (hFont == NULL) {
            FX_BOOL bExact;
            hFont = m_pFontInfo->MapFont(0, 0, FXFONT_DEFAULT_CHARSET, 0, name, bExact);
            if (hFont == NULL) {
                return;
            }
        }
        CFX_ByteString new_name = GetPSNameFromTT(hFont);
        if (!new_name.IsEmpty()) {
            new_name.Insert(0, ' ');
            m_InstalledTTFonts.Add(new_name);
        }
        m_pFontInfo->DeleteFont(hFont);
    }
    m_InstalledTTFonts.Add(name);
    m_LastFamily = name;
}