wxPython获取系统字体轮廓数据

问题描述

我正在为某些激光切割软件(https://github.com/meerk40t/meerk40t)编写代码,我想对字体中字形的轮廓进行激光切割。现在,wxPython已经内置了很多不错的字体,因此您可以以独立于操作系统的方式列出字体,但是这些字体实际上是指wx.Font对象,我看不到通过该轮廓访问轮廓的简便方法

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

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

解决方法

wxWidgets API中没有任何东西可以直接为您提供字体字形数据本身。您将需要使用平台特定的API来做到这一点,这将不会简单或令人愉悦,但应该可行,因为您可以从wxNativeFontInfo对象中获取这些API接受的任何输入wxFont(例如,在MSW中,本机字体信息包含LOGFONT,在GTK中-PangoFontDescription等)。