Как использовать шрифты открытого типа в Java? - PullRequest
8 голосов
/ 16 мая 2009

Есть ли способ читать шрифты Open Type в Java так же, как я делаю со шрифтами TrueType?

Это прекрасно работает для TTF, но я еще не понял, как сделать то же самое со шрифтами открытого типа.

Font f = Font.createFont( Font.TRUETYPE_FONT,
new FileInputStream("f.ttf") );

Обратите внимание, что я не могу ретранслировать установленные шрифты. Я предоставляю шрифт своей программой, но не хочу устанавливать его в масштабе всей системы.

Ответы [ 4 ]

4 голосов
/ 13 июля 2009

Поддержка шрифтов Java OpenType зависит от вашей ОС и версии JDK.

До Java 6 вы можете использовать только шрифты OpenType со вкусом TrueType. В Java 6 вы можете использовать все шрифты OpenType, но вам не помогут расширенные типографские функции, такие как лигатуры.

4 голосов
/ 16 мая 2009

Я не думаю, что есть поддержка Open Type Font в Java (не бесплатно, по крайней мере), iText утверждал, что такая поддержка, пробовал несколько месяцев назад, и она не работала, для меня работала программа под названием FontForge, который я использовал для создания ttf из otf, который я затем использовал.

1 голос
/ 17 октября 2012

Я использовал конвертер шрифтов для преобразования OTF в TTF файл. Есть некоторые онлайн-сервисы (например, www.freefontconverter.com ), которые делают эту работу. Для меня это был быстрый и простой обходной путь.

0 голосов
/ 07 августа 2015

Шрифт Open Type (.otf) не поддерживается в Java 1.6. С Java 1.7, поддержка добавлена. Ниже код работал для меня:

Font font = Font.createFont(Font.TRUETYPE_FONT, new File("MyFont.otf"));
font  = font.deriveFont(Font.BOLD, 40);
------
label.setFont(font);

Ниже приведено несколько ссылок, оправдывающих это

http://bugs.java.com/view_bug.do?bug_id=6992611 http://docs.oracle.com/javase/7/docs/webnotes/adoptionGuide/#swing

...