Классы шрифтов для поддерживаемых форматов шрифтов | API для .NET

Иерархия классов Aspose.Font

Иерархия классов Aspose.Font для поддержки шрифтов разных форматов довольно проста.

Класс Font — это один базовый класс и любой класс, который поддерживает некоторый формат шрифта, унаследованный от Font. В этом классе собрана общая информация для шрифтов всех форматов. Эта информация включает в себя такие данные, как стиль шрифта, имя шрифта, имя шрифта Postscript, семейство шрифта, метрики шрифта, количество глифов шрифта, кодировка и т. д.

Класс Font является абстрактным классом, поэтому экземпляр объекта типа Aspose.Font.Font не может быть создан напрямую.

Ссылку на только что созданный объект возвращают статические методы этого класса, отвечающие за загрузку шрифта, семейство перегруженных методов Open().

Что касается специфической для того или иного формата шрифта информации, то за предоставление такой информации отвечают объекты, унаследованные от базы Aspose.Font.Font.

Единственными данными, специфичными для формата шрифта, которые включает в себя базовый класс Font, является значение из перечисления FontType.

Следующие классы унаследованы от Aspose.Font и используются для работы с определенным форматом шрифта: TtfFont, Type1Font, CffFont.

Взаимосвязь между форматом шрифта, значением FontType и типом объекта Aspose.Font

В таблице ниже показано соответствие форматов, поддерживаемых Aspose.Font, соответствующих этим форматам значений из перечисления FontType и классов, используемых для управления каждым из этих форматов.

Формат шрифтаЗначение FontTypeAspose.Font object type
TrueTypeTTFTtfFont
Type 1Type 1Type1Font
Compact Font Format (CFF)CFFCffFont

Взаимосвязь между форматом файла шрифта, значением FontType и типом объекта Aspose.Font

Форматы вышеупомянутых шрифтов из перечисления FontType представляют собой более широкие термины, чем форматы файлов для этих шрифтов.

Например, формат TrueType охватывает следующие форматы файлов, доступные для загрузки с помощью Aspose.Font: ttf, ttc, eot, woff, woff2. Таким образом, общей чертой шрифтов с расширениями .ttf, .ttc, .eot, .woff, .woff2 является то, что все они относятся к семейству шрифтов TrueType.

Поэтому, заменив в таблице столбец «Формат шрифта» на столбец «Формат файла шрифта», мы получим следующую таблицу отношений между форматами файлов шрифтов, подгоняя им значения FontType, и объекты, предназначенные для работы с соответствующим форматом шрифта в Aspose.Font.

Формат файла шрифтаFontType valueAspose.Font object type
ttf, ttc, eot, woff, woff2TTFTtfFont
pfa, pfbType 1Type1Font
afm, pfmType 1Type1MetricFont
binary data of Compact Font Format typeCFFCffFont

Функциональность класса Aspose.Font.Font

Функциональность определяется классом Font и может быть разделена на несколько областей.

Функциональность, определяемая интерфейсами, которые реализует класс Font.

Самый важный интерфейс в списке интерфейсов шрифтов — это интерфейс IFont. Он предоставляет свойства для интерфейсов IGlyphAccessor и IFontSaver, которые реализованы классом Font, поэтому все функциональные возможности, определенные интерфейсами, которые реализует класс Font, охватываются этим IFont интерфейс.

Интерфейс IFont определяет свойства, общие для всех форматов шрифтов, поддерживаемых Aspose.Font. Ниже приведены описания каждого объекта недвижимости.

Свойства для управления форматами шрифтов

Кроме того, интерфейс IFont определяет метод Convert(), который используется для преобразования шрифта в другой формат.

На данный момент доступны преобразования из любого формата, поддерживаемого Aspose.Font, для чтения в формат TTF. Поддерживаемые форматы шрифтов представлены в таблице.

См. Конвертер шрифтов. для получения дополнительной информации о том, как конвертировать шрифты с помощью Aspose.Font.

Загрузка шрифта

Функциональность загрузки шрифтов не покрывается реализованными интерфейсами и представлена ​​семейством статических методов Open(). Параметры, передаваемые в эти методы, описаны в статье Как загрузить шрифты?.

Сохранение шрифта

Класс Font реализует интерфейс IFontSaver, который объявляет функциональность для операций сохранения шрифтов.

Чтобы сохранить шрифт, используйте один из перегруженных методов Save() и передайте имя файла шрифта или поток, в который нужно записать шрифт.

В некоторых случаях возникает необходимость сохранить шрифт в другой формат. Например, многие веб-страницы предпочитают работать со шрифтами в формате «WOFF», и если вы хотите разместить свой шрифт на такой странице, вам придется сохранить шрифт в формате «WOFF». Метод SaveToFormat() был разработан для таких случаев.

Классы, унаследованные от базового класса 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, реализованная классами из пространства имен Aspose.Font.TtfTables. Каждый класс, поддерживающий некоторую таблицу, имеет имя, связанное с именем соответствующей таблицы.

Именование класса выполняется по следующему правилу: имя каждого класса имеет префикс «Ttf», за этим префиксом следует имя таблицы, а затем слово «Таблица» завершает имя класса.

Например, таблица head поддерживается классом TtfHeadTable, таблица hhea поддерживается классом TtfHheaTable и т. д.

Ссылки на все классы, поддерживающие таблицы TrueType, собираются объектом типа TtfTableRepository.

Класс TtfFont предоставляет ссылку на объект TtfTableRepository как свойство TtfTables, поэтому получить доступ к любой таблице TrueType можно с помощью синтаксиса font.TtfTables, где font — это ссылка на тип TtfFont.

Поддержка функций шрифта OpenType представлена ​​свойством CffFont. Это свойство возвращает ссылку на объект Font, загруженный из таблицы CFF, которая содержит представление шрифта формата компактного шрифта.

Свойство IsSymbolic используется для определения того, является ли шрифт символическим — специализированным шрифтом, состоящим из неалфавитных символов, графики или того и другого.

Доступ к глифам шрифта

Класс TtfFont предоставляет расширенные функциональные возможности для доступа к глифам шрифтов. В дополнение к методам, определенным интерфейсом IGlyphAccessor, TtfFont предоставляет два перегруженных метода с именем GetGlyphById(), которым требуются идентификаторы глифов в целочисленной или строковой форме.

Использование этих методов работает быстрее, чем использование метода GetGlyphById() из интерфейса IGlyphAccessor. Кроме того, класс TtfFont предоставляет набор перегруженных методов GetGlyphComponentsById(). Эти методы предназначены для работы с составными глифами.

Композитный глиф — это глиф, который ссылается на один или несколько других глифов шрифта. Например, глиф символа Ä (Юникод U+00C4) может состоять из глифа символа A (в качестве базового глифа) и глифа знака диэрезиса.

Методы GetGlyphComponentsById() принимают идентификатор составного глифа и возвращают список глифов, на которые ссылается переданный составной глиф.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.