Spec-Zone .ru
спецификации, руководства, описания, API
|
Платформа Java определяет пять логических имен шрифтов, которые должна поддерживать каждая реализация: Засечка, SansSerif, Моноширинный, Диалоговый, и DialogInput. Эти логические имена шрифтов отображаются на физические шрифты зависящими от реализации способами.
Java Sun Среды выполнения SE использует конфигурационные файлы шрифта, чтобы отобразить логические имена шрифтов на физические шрифты. Есть несколько файлов, чтобы поддерживать различные отображения в зависимости от версии операционной системы узла. Файлы располагаются в каталоге lib в пределах установки JRE. Пользователи могут отредактировать или создать свои собственные конфигурационные файлы шрифта, чтобы скорректировать отображения к их определенной системной установке. Отметьте однако, что это - модификация JRE, и Sun не поддерживает измененный JREs.
Конфигурационные файлы шрифта прибывают в два формата: формат свойств и двоичный формат. Формат свойств описывается подробно в этом документе и может использоваться для определяемых пользователем конфигураций. Двоичный формат недокументирован и используется только для предопределенных конфигураций JRE; соответствующие файлы в формате свойств доступны для ссылки как файлы с ".properties. src" расширение.
Отметьте, что конфигурационные файлы шрифта являются зависящими от реализации. Не все реализации Платформы Java используют их, и формат и контент изменяются между различными средами выполнения так же как между выпусками. Этот документ описывает формат, используемый версией 6 Java Sun Среды выполнения SE.
Чтобы найти соответствующий конфигурационный файл шрифта для операционной системы узла, следующая информация используется:
"98"
, "2000"
, "Me"
, "XP"
, "2003"
."Sun"
, "RedHat"
, "Turbo"
, "SuSE"
.Время выполнения использует первый из следующих файлов, которые оно находит:
JavaHome/lib/fontconfig.
OS.Version.properties
JavaHome/lib/fontconfig.
OS.Version.bfc
JavaHome/lib/fontconfig.
OS.properties
JavaHome/lib/fontconfig.
OS.bfc
JavaHome/lib/fontconfig.
Version.properties
JavaHome/lib/fontconfig.
Version.bfc
JavaHome/lib/fontconfig.properties
JavaHome/lib/fontconfig.bfc
Файлы с суффиксом ".properties", как предполагается, являются файлами свойств как определено Properties
class и загружается через тот class. Файлы без этого суффикса, как предполагается, находятся в двоичном формате.
Всюду по конфигурационным файлам шрифта используются много различных имен:
serif
, sansserif
, monospaced
, dialog
, и dialoginput
. В конфигурационных файлах шрифта эти имена всегда находятся в нижнем регистре.plain
, bold
, italic
, и bolditalic
. Снова, эти имена всегда находятся в нижнем регистре."Courier New"
или "\uad74\ub9bc"
."-monotype-times new roman-regular-r---*-%d-*-*-p-*-iso8859-1"
. Отметьте это "%d"
используется для размера шрифта - фактический размер шрифта заполнен в во времени выполнения.java.nio.charset.Charset.defaultCharset().name()
.Свойство версии идентифицирует версию формата конфигурации шрифта. Этот документ определяет версию 1.
У полного свойства есть форма:
version=1
Компонентные свойства отображения шрифтов описывают который физический шрифт использовать, чтобы представить символы от данного символьного подмножества с данным логическим шрифтом в данном стиле.
У ключей есть формы:
allfonts.
CharacterSubsetName LogicalFontName.
StyleName.
CharacterSubsetName
Первая форма используется, если тот же самый шрифт используется для символьного подмножества, независимого от логического шрифта и стиля (в этом случае, механизмы рендеринга шрифта применяют алгоритмические стили к шрифту). Вторая форма используется, если различные физические шрифты используются для символьного подмножества для различных логических шрифтов и стилей. В этом случае свойства должны быть определены для каждой комбинации логического шрифта и стиля, таким образом, 20 свойств для одного символьного подмножества. Если свойство первой формы присутствует для символьного подмножества, то свойства второй формы для того же самого символьного подмножества игнорируются.
Значения являются именами шрифтов платформы, как описано выше.
Так как символьные подмножества, поддерживаемые данными шрифтами часто, накладываются, отдельные свойства последовательности поиска используются, чтобы определить в который порядок попробовать шрифты, представляя символ.
Среда выполнения Java использует свойства последовательности, чтобы определить последовательности поиска для пяти логических шрифтов. Однако, конфигурационный файл шрифта может определить свойства, которые являются определенными для комбинации кодирования, языка, и страны, и время выполнения будет тогда использовать поиск, чтобы определить свойство последовательности поиска для каждого логического шрифта.
У ключей есть форма:
sequence.allfonts
.Encoding.Language.Countrysequence.
LogicalFontName.Encoding.Language.Countrysequence.allfonts
.Encoding.Languagesequence.
LogicalFontName.Encoding.Languagesequence.allfonts
.Encodingsequence.
LogicalFontName.Encodingsequence.allfonts sequence.
LogicalFontName
allfonts
формы используются, если последовательность используется для всех пяти логических шрифтов. Формы, определяющие логические имена шрифтов, используются, если различные последовательности используются для различных логических шрифтов.
Для каждого логического шрифта Среда выполнения Java использует значение свойства с первым из вышеупомянутых ключей. Это свойство определяет основную последовательность поиска для логического шрифта.
Файл может также определить единственную последовательность поиска нейтрализации. Ключ для свойства последовательности поиска нейтрализации:
sequence
.fallback
У значений всех свойств последовательности поиска есть форма:
SearchSequenceValue: CharacterSubsetName CharacterSubsetName , SearchSequenceValue
Основные свойства последовательности поиска определяют символьные имена подмножества для необходимых шрифтов, которые используются и для AWT и для 2-D рендеринга шрифта. Свойство последовательности поиска нейтрализации дает символьные имена подмножества для дополнительных шрифтов, которые используются в качестве нейтрализаций для всех логических шрифтов, но только для 2-D рендеринга шрифта. Время выполнения автоматически добавляет Lucida Sans Регулярный шрифт как шрифт нейтрализации для 2-D рендеринга, если это уже не определяется. Если у среды выполнения есть каталог, lib/fonts/fallback, и этот каталог содержит допустимый TrueType или шрифты Типа 1, время выполнения автоматически добавляет эти шрифты как шрифты нейтрализации для 2-D рендеринга. На Windows, если есть система EUDC (Конечный пользователь Определенные Символы) шрифт, зарегистрированный в Windows, время выполнения автоматически добавляет этот шрифт так же как шрифт нейтрализации для 2-D рендеринга.
Свойства последовательности определяют, в котором компонентные шрифты последовательности пробуют, чтобы представить данный символ. Например, учитывая следующие свойства:
sequence.monospaced=japanese,alphabetic sequence.fallback=korean monospaced.plain.alphabetic=Arial monospaced.plain.japanese=MSGothic monospaced.plain.korean=Gulim
время выполнения сначала попытается представить символ со шрифтом MSGothic. Если тот шрифт не обеспечит глифа для символа, то он будет делать попытку шрифта Arial. Для 2-D рендеринга это также попробует Gulim и Lucida Sans Регулярный шрифт так же как любой TrueType или шрифты Типа 1 в каталоге lib/шрифтов/нейтрализации времени выполнения. Для 2-D рендеринга на Windows, если есть система шрифт EUDC, зарегистрированный в Windows, время выполнения наконец попробует этот шрифт EUDC.
Вычисляя метрики шрифта для логического шрифта независимо от строки, только необходимые шрифты учитываются. Для примера выше, метод FontMetrics.getMaxDescent возвратил бы результаты, основанные на шрифтах MSGothic и Arial, но не шрифтах Gulim и Lucida Sans. Таким образом на простые элементы пользовательского интерфейса, такие как кнопки, которые иногда вычисляют их размер, основанный на метриках шрифта, не влияет расширенный список компонентных шрифтов, которые обычно не используют их метки. С другой стороны текстовые компоненты обычно вычисляют метрики, основанные на тексте, который они содержат и таким образом получат корректные результаты.
Свойства последовательности, которые время выполнения получает для пяти логических шрифтов, должны перечислить те же самые символьные подмножества, но могут перечислить их в различном порядке.
Свойства диапазона исключения определяют диапазоны символов Unicode, которые должны быть исключены из того, чтобы быть представленным со шрифтами, соответствующими данному символьному подмножеству. Это используется, если шрифт с большим символьным репертуаром должен быть помещен рано в последовательности поиска (например, по причинам производительности), но некоторые символы, которые это поддерживает, должны быть оттянуты с различным шрифтом вместо этого. Эти свойства являются дополнительными, таким образом есть самое большее один на символьное подмножество.
У ключей есть форма:
exclusion.
CharacterSubsetName
У значений есть форма:
ExclusionRangeValue: Range Range,
ExclusionRangeValue Range: Char-
Char Char: HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit
Случайная работа является символом Unicode, представленным как шестнадцатеричное значение.
Пропорциональные свойства шрифта описывают отношение между пропорциональными и непропорциональными разновидностями иначе эквивалентных шрифтов. Эти свойства используются, чтобы реализовать предпочтение, определенное методом GraphicsEnvironment.preferProportionalFonts.
У ключей есть форма:
proportional.
PlatformFontName
Пробелы в имени шрифта платформы должны быть заменены символами подчеркивания (" _ ").
У значений есть форма:
PlatformFontName
В значениях пробелы оставляют неизмененными.
Каждое свойство указывает, что шрифт, названный в значении, является пропорциональным эквивалентом шрифта, названного в ключе, и также что шрифт, названный в ключе, является непропорциональным эквивалентом шрифта, названного в значении.
Свойства имени файла шрифта обеспечивают имена файлов, содержащих физические шрифты, используемые в конфигурационном файле шрифта. Имена файлов требуются для всех физических шрифтов на Windows и рекомендуются для всех физических шрифтов на Солярисе и Linux.
У ключей есть форма:
filename.
PlatformFontName
Пробелы в имени шрифта платформы должны быть заменены символами подчеркивания (" _ ").
Значения являются именами файлов файлов, содержащих шрифты. На Windows используются простые имена файлов; и среда выполнения ищет каждый файл сначала в его собственном lib/fonts
каталог, затем в каталоге шрифтов Windows. На Солярисе и Linux, абсолютных путях, пути, запускающиеся с "$JRE_LIB_FONTS"
для собственной среды выполнения lib/fonts
каталог, или имена xlfd используется.
Среда выполнения Java может автоматически определить много каталогов, которые содержат файлы шрифта, такой как его собственное lib/fonts
каталог или папка шрифтов Windows. Дополнительные каталоги могут быть определены, чтобы быть добавленными к пути шрифта.
У ключа есть форма:
appendedfontpath
У значения есть форма:
AppendedFontPathValue: Directory Directory PathSeparator AppendedFontPathValue
Разделитель пути является платформой зависимое значение java.io. File.pathSeparator.
Нет никаких специфичных для платформы свойств для Windows. Однако, есть специальная форма символьного имени подмножества, используемого в последовательностях поиска. "Алфавитное" имя может взять суффикс, указывающий на кодировку символов, связанную с подмножеством:
alphabetic
alphabetic/default
alphabetic/1252
Эта информация только используется для AWT, не для 2-D. "/значение по умолчанию" суффикс ограничивает использование компонентных шрифтов для этого символьного подмножества к набору символов кодировки по умолчанию; "/1252" снабжают суффиксом к набору символов Windows 1252. Для того, чтобы получить доступ к компонентному отображению шрифтов и диапазонам исключения, опускается суффикс кодировки символов. Для всех других символьных подмножеств кодировка символов AWT определяется внутренне Средой выполнения Java.
Текстовые компоненты AWT, которые полагаются на Основанные на мотиве коллеги для текстового рендеринга, не могут всегда использовать те же самые шрифты платформы в качестве других компонентов AWT и 2-D. Ища компонентные шрифты для этих компонентов, дополнительные ключи распознаются. Полный набор ключей, искавших в этом случае:
allfonts.
CharacterSubsetName.motif
LogicalFontName.
StyleName.
CharacterSubsetName.motif allfonts.
CharacterSubsetNameLogicalFontName
.
StyleName.
CharacterSubsetName
Свойства пути шрифта AWT определяют каталоги платформы, которые должны быть добавлены к пути шрифта сервера X11. У ключей есть форма:
awtfontpath.CharacterSubsetName
У значений есть форма:
AWTFontPathValue:
Directory
Directory :
AWTFontPathValue
Каталоги должны быть допустимыми каталогами шрифта X11. Среда выполнения Java гарантирует, что каталоги для всех символьных подмножеств основной последовательности поиска, найденной поиском последовательности поиска, являются частью пути шрифта X11. Реализация предполагает, что все логические шрифты используют тот же самый набор символьных подмножеств для данной среды кодирования, языка, и страны.