如何加载系统上未安装的字体
How to load font not installed on system
我想从一个 eclipse 插件修改默认的编辑器文本字体,我设法通过以下方式做到这一点:
WorkbenchPlugin.getDefault().getPreferenceStore().put(JFaceResources.TEXT_FONT, "dummy font values");
问题是我要设置的字体(Source Code Pro
)没有安装在系统中,也不应该安装。
我从 here 下载字体,但我没有找到从下载的文件加载字体并将其设置为 JFaceResources.TEXT_FONT
首选项条目的值的方法。
org.eclipse.swt.graphics.Device
有一个方法 loadFont(String path)
看起来很有希望,但是 Display.getCurrent()
returns null
在我的插件中。
如何从文件加载字体?
加载后如何在我的插件中设置字体?
试试下面的代码片段。它适用于大多数情况。我通过参考 SO 问题 link ---> Load a font in RCP
得到了这个片段
final String path = "fonts/helveticaNeueBold_iOS7.ttf";
final URL pathUrl = BundleUtility.find(PLUGIN_ID, path);
final String filePathAsString = FileLocator.toFileURL(pathUrl).getPath().toString();
final boolean isFontLoaded = Display.getCurrent().loadFont(filePathAsString);
我想从一个 eclipse 插件修改默认的编辑器文本字体,我设法通过以下方式做到这一点:
WorkbenchPlugin.getDefault().getPreferenceStore().put(JFaceResources.TEXT_FONT, "dummy font values");
问题是我要设置的字体(Source Code Pro
)没有安装在系统中,也不应该安装。
我从 here 下载字体,但我没有找到从下载的文件加载字体并将其设置为 JFaceResources.TEXT_FONT
首选项条目的值的方法。
org.eclipse.swt.graphics.Device
有一个方法 loadFont(String path)
看起来很有希望,但是 Display.getCurrent()
returns null
在我的插件中。
如何从文件加载字体?
加载后如何在我的插件中设置字体?
试试下面的代码片段。它适用于大多数情况。我通过参考 SO 问题 link ---> Load a font in RCP
得到了这个片段final String path = "fonts/helveticaNeueBold_iOS7.ttf";
final URL pathUrl = BundleUtility.find(PLUGIN_ID, path);
final String filePathAsString = FileLocator.toFileURL(pathUrl).getPath().toString();
final boolean isFontLoaded = Display.getCurrent().loadFont(filePathAsString);