Классы шрифтов для их поддерживаемых форматов | API для Java
Иерархия классов com.aspose.font
Иерархия классов пакета com.aspose.font, предназначенных для поддержки шрифтов разных форматов, довольно проста.
Класс Font — это один базовый класс и любой класс, который поддерживает некоторый формат шрифта, унаследованный от Font. В этом классе собрана общая информация для шрифтов всех форматов. Эта информация включает в себя такие данные, как стиль шрифта, имя шрифта, имя шрифта Postscript, семейство шрифта, метрики шрифта, количество глифов шрифта, кодировка и т. д.
Класс Font является абстрактным классом, поэтому экземпляр объекта типа com.aspose.font.Font не может быть создан напрямую. Ссылку на только что созданный объект возвращают статические методы этого класса, отвечающие за загрузку шрифта, семейство перегруженных методов open().
Что касается специфической для того или иного формата шрифта информации, то за предоставление такой информации отвечают объекты, унаследованные от базы com.aspose.font.Font
. Единственными данными, специфичными для формата шрифта, который включает в себя базовый класс Font, является значение из перечисления
FontType.
Следующие классы унаследованы от com.aspose.font.Font и используются для работы с определенным форматом шрифта: TtfFont, Type1Font, *CffFont *.
Взаимосвязь между форматом шрифта, значением FontType и типом объекта com.aspose.font.Font
В таблице ниже показано соответствие между форматами, поддерживаемыми com.aspose.font, соответствующими этим форматам значениями из перечисления FontType и классами, используемыми для управления каждым из этих форматов.
Формат шрифта | Значение FontType | com.aspose.font object type |
---|---|---|
TrueType | TTF | TtfFont |
Type 1 | Type 1 | Type1Font |
Compact Font Format (CFF ) | CFF | CffFont |
Взаимосвязь между форматом файла шрифта, значением FontType и типом объекта com.aspose.font.Font
Форматы вышеупомянутых шрифтов из перечисления FontType представляют собой более широкие термины, чем форматы файлов для этих шрифтов.
Например, формат TrueType охватывает следующие форматы файлов, доступные для загрузки с помощью com.aspose.font: ttf, ttc, eot, woff, woff2. Таким образом, общей чертой шрифтов с расширениями .ttf
, .ttc
, .eot
, .woff
, .woff2
является то, что все они относятся к семейству шрифтов TrueType
.
Поэтому, заменив в таблице столбец «Формат шрифта» на столбец «Формат файла шрифта», мы получим следующую таблицу связей между форматами файлов шрифтов, соответствующими им значениями FontType и объектами, предназначенными для работы. с соответствующим форматом шрифта в com.aspose.font.
Формат файла шрифта | FontType value | com.aspose.font object type |
---|---|---|
ttf , ttc , eot , woff , woff2 | TTF | TtfFont |
pfa , pfb | Type 1 | Type1Font |
afm , pfm | Type 1 | Type1MetricFont |
binary data of Compact Font Format type | CFF | CffFont |
Функциональность класса com.aspose.font.Font
Функциональность определяется классом Font, его можно разделить на несколько областей.
Функциональность, определяемая интерфейсами, которые реализует класс Font.
Самый важный интерфейс в списке интерфейсов шрифтов — это интерфейс IFont. Он предоставляет свойства для интерфейсов IGlyphAccessor и IFontSaver, которые реализованы классом Font, поэтому все функциональные возможности, определенные интерфейсами, реализуемыми классом Font, охватываются этим IFont интерфейс.
Интерфейс IFont определяет свойства, общие для всех форматов шрифтов, поддерживаемых com.aspose.font. Ниже приведены описания каждого объекта недвижимости.
Свойства для управления форматами шрифтов###
- строка FontName - название шрифта.
- MultiLanguageString FontNames — название шрифта на разных языках.
- MultiLanguageString PostscriptNames - постскриптумное название шрифта на разных языках. — string FontFamily — название семейства шрифтов. Более подробную информацию о семействах шрифтов см. в главе Семейство шрифтов.
- FontType FontType — тип формата шрифта, представленный перечислением FontType.
- FontStyle FontStyle — значение стиля шрифта из класса FontStyle. Узнайте больше о стилях шрифтов.
- строка Style — имя стиля шрифта, аналогично свойству FontStyle, представленному в виде необработанной строки, предоставленной данными шрифта.
- FontDefinition FontDefinition — объект, описывающий формат и источник для загрузки шрифта. Перейдите в Как загрузить шрифты, где вы сможете подробно узнать, как работать с этим объектом.
- int NumGlyphs - получает количество глифов шрифта.
- IFontMetrics Metrics — получает ссылку на интерфейс IFontMetrics, который предоставляет функциональные возможности, связанные с общими метриками шрифтов.
- IFontEncoding Encoding — получает ссылку на интерфейс IFontEncoding, который обеспечивает функциональность кодирования.
- IGlyphAccessor GlyphAccessor — получает ссылку на интерфейс IGlyphAccessor, который обеспечивает функциональность для получения указанных идентификаторов и глифов.
- IFontSaver FontSaver — обеспечивает функцию сохранения шрифтов с помощью интерфейса IFontSaver.
Кроме того, интерфейс IFont определяет метод convert(), который используется для преобразования шрифта в другой формат.
На данный момент доступны преобразования из любого формата, поддерживаемого Aspose.Font, для чтения в формат TTF. Поддерживаемые форматы шрифтов представлены в таблице.
См. Конвертер шрифтов. для получения дополнительной информации о том, как конвертировать шрифты с помощью Aspose.Font.
Загрузка шрифта
Функциональность загрузки шрифтов не покрывается реализованными интерфейсами и представлена семейством статических методов open(). Параметры, передаваемые в эти методы, описаны в статье Как загрузить шрифты?.
Сохранение шрифта
Класс Font реализует интерфейс IFontSaver, который объявляет функциональность для операций сохранения шрифтов. Чтобы сохранить шрифт, используйте один из перегруженных методов save() и передайте имя файла шрифта или поток, в который нужно записать шрифт.
В некоторых случаях возникает необходимость сохранить шрифт в другой формат. Например, многие веб-страницы предпочитают работать со шрифтами в формате «WOFF», и если вы хотите разместить свой шрифт на такой странице, вам придется сохранить шрифт в формате «WOFF». Метод saveToFormat() был разработан для таких случаев.
Классы, унаследованные от класса com.aspose.font.Font
Классы CffFont и Type1Font
Эти классы используются для работы со шрифтами формата «Compact Font Format» и Adobe «Type 1» соответственно. Эти классы переопределяют определенные свойства и методы класса Font, адаптируя их к реальному формату шрифта.
Класс TtfFont
Этот класс предназначен для поддержки шрифтов формата TrueType.
Ссылку на объект этого типа можно получить, вызвав статический метод
Font.open() с передачей TTF
в качестве значения для перечисления
FontType. Метод Font.open() возвращает ссылку на базовый тип
Font, поэтому полученную ссылку необходимо привести к типу объекта TtfFont
.
Как известно из спецификации формата TrueType, данные шрифта представлены в разных таблицах. На данный момент библиотека Aspose.Font поддерживает следующие таблицы:
head
, cmap
, glyf
, loca
, hhea
, hmtx
, maxp
, OS/2
, name
, post
, kern
, cvt
, fpgm
, prep
.
*Поддержку других таблиц, указанных в стандарте TrueType, планируется реализовать в ближайшем будущем.
Поддержка таблиц TrueType в Aspose.Font реализована классом TtfTableBase. Каждый класс, поддерживающий некоторую таблицу, имеет имя, связанное с именем соответствующей таблицы.
Именование класса выполняется по следующему правилу:
имя каждого класса имеет префикс «Ttf», за этим префиксом следует имя таблицы, а затем слово «Таблица» завершает имя класса.
Например, таблица head поддерживается классом TtfHeadTable, таблица hhea поддерживается классом TtfHheaTable и т. д.
Ссылки на все классы, поддерживающие таблицы TrueType, собираются объектом типа TtfTableRepository.
Класс
TtfFont предоставляет ссылку на объект
TtfTableRepository как свойство
TtfTables, поэтому получить доступ к любой таблице TrueType
можно с помощью синтаксиса шрифт.TtfTables
,
где font
— это ссылка на тип TtfFont.
Поддержка функций шрифта OpenType представлена свойством CffFont. Это свойство возвращает ссылку на объект Font, загружается из таблицы CFF, которая содержит представление шрифта компактного формата шрифта.
Свойство IsSymbolic используется для определения того, является ли шрифт символическим — специализированным шрифтом, состоящим из неалфавитных символов, графики или того и другого.
Доступ к глифам шрифта
Класс
TtfFont предоставляет расширенные функциональные возможности для доступа к глифам шрифтов. В дополнение к методам, определенным интерфейсом
IGlyphAccessor,
TtfFont предоставляет два перегруженных метода с именем
getGlyphById(), которым требуются идентификаторы глифов в целочисленной или строковой форме.
Использование этих методов работает быстрее, чем использование метода getGlyphById() из интерфейса IGlyphAccessor. Кроме того, класс TtfFont предоставляет набор перегруженных методов getGlyphComponentsById(). Эти методы предназначены для работы с составными глифами.
Композитный глиф — это глиф, который ссылается на один или несколько других глифов шрифта. Например, глиф символа Ä (Юникод U+00C4) может состоять из глифа символа A (в качестве базового глифа) и глифа знака диэрезиса.
Методы getGlyphComponentsById() принимают идентификатор составного глифа и возвращают список глифов, на которые ссылается переданный составной глиф.