wxPython获取系统字体轮廓数据

wxPython getting system font contours data

我正在为某个激光切割软件 (https://github.com/meerk40t/meerk40t) 编写代码,我想用激光切割字体中字形的轮廓。现在 wxPython 已经内置了一堆漂亮的字体,所以你可以用 OS 独立的方式列出字体,但这些实际上指的是 wx.Font 对象,我没有看到一个简单的方法通过它访问轮廓。

如果我得到文件,我可以 运行 类似 freetype 或 fonttools 的东西并使用它来获取轮廓,但我仍然想要 OS 独立的字体访问,我看不到一个简单的方法来处理它。有一些奇怪的事情,比如将其写入 SVG 并通过 Inkscape 命令行发送以将文本转换为路径。我宁愿更少而不是更多的依赖项,但我也希望它能与我目前拥有的 bupkis 一起工作。

wxPython 目前允许我获取系统字体并将它们放到图形上下文中,所以那里应该有一种方法。但是,我看不到前进的道路。我可以直接访问 ttf 文件,但没有为我完成字体工作,我不知道当前选择的字体文件是什么,我需要添加字体轮廓读取的依赖项或自己编写代码。

wxWidgets API 中没有任何东西可以直接为您提供字体字形数据本身。您将需要使用 platform-specific APIs 来完成它,这不会简单或令人愉快,但应该是可行的,因为您可以获得这些 APIs 从输入中获取的任何内容您可以从 wxFont 获得的 wxNativeFontInfo 对象(例如,在 MSW 下,本机字体信息包含 LOGFONT,在 GTK 下——PangoFontDescription 等)。