正在获取未安装字体的字体和Windows名称



有人能告诉我如何获得字体的字体名称吗?我怎么能取有字体名称的字体的Windows名称?

就像"arialblackno1.ttf"有"arialbrack"字体。

但我想得到一个没有安装的字体的字体名称,它只是在一个文件夹中。

您在注释中说您需要一个未安装在Windows中的字体的名称。

有两种方法可以做到这一点,我可以想到:-

  • 使用FreeType

  • 或者,使用GDI+和PrivateFontCollection.AddFontFile()

无论哪种方式,您都需要为这些库找到Delphi包装器。谷歌应该提供帮助。

似乎有一个FreeType绑定作为AggPas的一部分。不过,这不是我尝试过的。

事实上,我对你到底在问什么有点了解(条款!)

procedure TForm14.FormCreate(Sender: TObject);
var
  DC: HDC;
  Font: HFONT;
  LogFont: TLogFont;
begin
  DC := GetDC(HWND_DESKTOP);
  Win32Check(DC <> 0);
  Font := GetCurrentObject(DC, OBJ_FONT);
  Win32Check(Font <> 0);
  Win32Check(GetObject(Font, SizeOf(LogFont), @LogFont) > 0);
  ShowMessage(LogFont.lfFaceName);
  Win32Check(ReleaseDC(HWND_DESKTOP, DC) = 1);
end;

最新更新