1
如何根据当前操作系统从org.eclipse.swt.browser.Browser
获取默认浏览器字体?SWT从浏览器获取默认字体
例如在Windows上,浏览器使用“Times New Roman”。
如何根据当前操作系统从org.eclipse.swt.browser.Browser
获取默认浏览器字体?SWT从浏览器获取默认字体
例如在Windows上,浏览器使用“Times New Roman”。
使用的默认字体取决于浏览器窗口小部件当前使用的渲染引擎(IE,Mozilla,Webkit)。
由于Browser#getFont()
未反映此情况,因此您只能解决此限制。一种可能的方法是让浏览器执行返回body标签的字体,像这样的Javascript代码:
Browser browser = new Browser(shell, SWT.NONE);
browser.setText("<html><head></head><body></body></html>");
browser.addProgressListener(new ProgressAdapter() {
public void completed(ProgressEvent event) {
Object font = browser.evaluate("return document.defaultView.getComputedStyle(document.body, null).getPropertyValue('font-family');");
}
});
这将返回至少在我(的Windows)系统通过浏览器引擎使用的实际字体。