Java: Как прочитать свойства файла шрифта? - PullRequest
3 голосов
/ 03 декабря 2011

У меня есть приложение, в которое пользователи загружают шрифты (TTF и OTF), и я хотел бы отсортировать их в обычные коллекции, курсив, полужирный и полужирный курсив.Есть ли способ в Java, чтобы сказать, какой стиль шрифта?

Обновление: кажется, что этот ответ, как это сделать в PHP

Следующий код говорит, что«HelveticaNeueLTW1G_Bd.otf» имеет стиль «обычный», но я ожидаю, что он будет отображать его жирным шрифтом.

File f = new File("/Volumes/Files/work/workspace/FontTest/src/com/opensoft/fonttest/", "HelveticaNeueLTW1G_Bd.otf");
System.out.println(f);
InputStream inputStream = new FileInputStream(f);
Font createdFont = Font.createFont(Font.TRUETYPE_FONT, inputStream);
System.out.println(createdFont);
System.out.println(createdFont.getAttributes());

output

java.awt.Font[family=HelveticaNeueLTW1G-Bd,name=HelveticaNeueLTW1G-Bd,style=plain,size=1]
map of {family="HelveticaNeueLTW1G-Bd", weight=1.0*, width=1.0*, posture=0.0*, size=1.0, transform=null*, superscript=0*, tracking=0.0*[btx=null, ctx=null]}

спасибо!

Ответы [ 3 ]

1 голос
/ 03 декабря 2011

Я почти уверен, что проблема в том, что имена и стили шрифтов отличаются от преобразований (например, курсив или полужирный ), которые можно применять во время выполнения с помощью , deriveFont. Фактически шрифт, который вначале должен быть выделен жирным шрифтом, может стать еще более жирным, если используется жирный вариант.

В результате этого Java просто сообщит, что загруженный по умолчанию вариант шрифта «не (используя) жирный (вариант)».

0 голосов
/ 05 декабря 2011

Не могу разобраться с прямой Java, но вы можете использовать инструмент командной строки , документированный в этом ответе .

0 голосов
/ 03 декабря 2011

Используйте Font boldFont = createdFont.deriveFont(Font.BOLD);.Я не уверен, что это работает, если свойство шрифта выделено жирным шрифтом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...