Мы используем SWT-браузер в нашем приложении java для отображения содержимого HTML. Проблемы возникают, когда среда имеет очень высокое разрешение (4K). Когда контент имеет такой html:
<html> <head> <style> .test { font-size: 35px;font-family: Arial;} </style> </head><body><div class='test'>TEST</div></body></html>
И используемый источник java:
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
public class SWTTest {
public void run() {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("SWT test");
createContents(shell);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
private void createContents(Shell shell) {
shell.setLayout(new FillLayout());
Browser browser = new Browser(shell, SWT.NONE);
browser.setText("<html> \r\n" +
"<head> <style> .test { font-size: 85px;font-family: Arial;} </style> </head>\r\n" +
"<body>\r\n" +
"<div class=\"test\">TEST</div>\r\n" +
"</body>\r\n" +
"</html>");
}
public static void main(String[] args) {
new SWTTest().run();
}
}
В обычных средах с разрешением 1920x1080 и разрешением 96, отображаемый контент и просматриваемый контент в Internet Explorer одинаковы (мы сохраняем текст примера html в виде файла и открываем его с помощью IE)
На некоторых ноутбуках, где у нас есть разрешение более 128 и 4 тыс. Размеров, у получаемого контента есть элементы (TEST div) с размером шрифта 35 пикселей, очень малым по сравнению с IE.
Поскольку мы знаем, что SWT использует базовый IE, но я думаю, что IE делает некоторые операции после обработки для точной настройки содержимого и фиксирует размеры элементов в зависимости от свойств экрана (разрешение и т.д.), Что не выполняется при вызове из SWT.
Любое решение без изменения содержимого html?
Свойства системы: ОС: Windows 10 (обновлено) IE: 11 Java 1.8.161 (32bits) SWT: 4.3