Я перечислил все доступные шрифты в системе, вызвавJava не может увидеть все установленные шрифты в системе
GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] fontNames = graphicsEnvironment.getAllFonts();
for (Font s : fontNames) {
System.out.println(s);
}
На консоли можно увидеть много шрифтов, но список выглядит очень неполным. Например: Моя ОС установлена «Система» шрифт, но на выходе я не могу видеть, что шрифт:
...
java.awt.Font[family=Sylfaen,name=Sylfaen,style=plain,size=1]
java.awt.Font[family=Symbol,name=Symbol,style=plain,size=1]
java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=1]
...
Установленные шрифты (простите за польский ОС):
Почему?
Другое дело, что в WordPad я вижу шрифт «Система». Однако в MS Word 2010 шрифт «Система» недоступен.
Проблема не в этом конкретном шрифте «Система». В Java установлено несколько шрифтов, но отсутствует.
EDIT: Почему я спрашиваю? Мое приложение использует BIRT Report Designer для генерации файлов .rpt с шаблонами отчетов. Затем я использую эти файлы для визуализации компонентов Swing, таких как JLabel, JTextField и т. Д. Основная проблема: пользователь может генерировать отчет с полями, которые используют шрифт, который не может обрабатывать Java Swing.
Часть образца XML файла, созданного с помощью BIRT:
<property name="fieldName">Blablabla{Label}</property>
<property name="fontFamily">"System"</property>
<property name="fontSize">16pt</property>
Наш Requirment клиент указывает, что шрифт не может отличаться от сформированного отчета и компонентов Java Swing.
Что я хочу сделать, это либо обработать все системные шрифты в Java, либо исключить из BIRT-шрифтов, которые java не может обрабатывать.
Из интереса, не работает ли 'graphicsEnvironment.getAvailableFontFamilyNames()' возвращать полный список? –
Нет, это не так. – kukis
[вы можете проверить с помощью] (http://stackoverflow.com/a/9022901/714968) или вы можете зарегистрировать новый шрифт из Java (http://stackoverflow.com/a/18462739/714968) то вы можете увидеть, правильно ли установлены все корты CP1250/1 в Native OS. – mKorbel