Как я могу использовать Helvetica в Java? - PullRequest
3 голосов
/ 17 декабря 2008

Helvetica доступен в той или иной форме в Windows, Mac OS X и Linux. Под Windows я вижу это из Microsoft Word. На двух платформах UNIX я могу найти его с помощью xlsfonts | grep -i helvetica; название, кажется, adobe-helvetica.

Но JDK не может его найти! Он не указан в GraphicsEnvironment.getAllFonts () и не появляется, когда я вызываю новый шрифт («Helvetica», ...) [используя несколько вариантов имен, например, «Adobe Helvetica»]; вместо этого я по умолчанию использую шрифт «Диалог», и мне кажется, что он называется с любым именем, которое я использовал.

Этот шрифт доступен сегодня на любой соответствующей целевой платформе Java. Как мне использовать его из Java?

Ответы [ 6 ]

3 голосов
/ 17 декабря 2008
Font f = new Font("Helvetica", Font.PLAIN, 10);  // make a new font object

ObjectName.setFont(f); // set the objects font using setFont();

где "Helvetica" - это шрифт, Font.PLAIN определяет стиль, а 10 - размер. Конечно, он должен быть установлен для работы, и вы можете связать его с помощью CreateFont ().

Попробуйте Java API для шрифтов для получения дополнительной информации.

2 голосов
/ 30 марта 2009

Установка шрифтов TrueType обычно довольно проста. Я использую maven для своего проекта, поэтому я просто сохраняю файл шрифта в своем каталоге ресурсов и беру его с помощью загрузчика классов.

InputStream is = MyClass.class.getClassLoader().getResourceAsStream("my/package/Avenir.ttf");
Font f = Font.createFont(Font.TRUETYPE_FONT, is);
is.close();

Этот шрифт должен быть загружен в память для использования в другом месте приложения с использованием имени шрифта. Вы можете убедиться, что это сработало, и посмотреть, какие шрифты вам доступны в вашей системе, используя приведенный ниже код.

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontNames = ge.getAvailableFontFamilyNames();

for(String name : fontNames)
    System.out.println(name);
2 голосов
/ 17 декабря 2008

Я понимаю, что на самом деле это не ответ на вопрос, но ...

В Windows Helvetica не всегда установлена. Моя машина на работе (та, которую я использую сейчас) нет, несмотря на наличие Microsoft Office XP.

1 голос
/ 17 декабря 2008

В Linux есть файл font.properties где-то в каталоге jre или jdk, в который вы должны добавлять новые шрифты, но я пробовал несколько разных способов, чтобы добавить в него шрифты, даже те, которые известны ОС и отображаются в xlsfonts, и никогда не заставляли ее работать.

0 голосов
/ 17 декабря 2008

Я думаю, если вы поместите файл шрифта в папку src и вызовете его оттуда, он будет работать.

0 голосов
/ 17 декабря 2008

Официально единственными шрифтами, которые гарантированно поставляются с Java, являются фронты Lucida (Bright, Sans и Typewriter). В зависимости от установки и конфигурации Java, он может прочитать фронт из каталога шрифтов вашего компьютера, но это не гарантируется.

Если это должен быть Helvetica, вы можете связать шрифт с помощью Font.CreateFont (), передавая int, представляющий тип (Font.BOLD или Font.PLAIN и т. Д.), И InputStream в шрифт TrueType.

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