如何加载系统上未安装的字体

时间:2018-06-20 12:44:14

标签: eclipse eclipse-plugin swt

从一个eclipse插件中,我想修改默认的编辑器文本字体,我通过以下方法管理tp: WorkbenchPlugin.getDefault().getPreferenceStore().put(JFaceResources.TEXT_FONT, "dummy font values");

问题是我要设置的字体(Source Code Pro)未安装在系统中,并且不应该安装。

我从here下载了字体,但没有找到从下载的文件加载字体并将其设置为JFaceResources.TEXT_FONT prefs条目的值的方法。

org.eclipse.swt.graphics.Device的方法loadFont(String path)看起来很有希望,但是Display.getCurrent()在我的插件中返回了null

如何从文件中加载字体?
加载后如何在插件中设置字体?

1 个答案:

答案 0 :(得分:3)

尝试以下代码段。在大多数情况下都可以使用。我通过参考SO问题链接---> 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);