Класи шрифтів для підтримуваних ними форматів | 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 і класи, що використовуються для роботи з кожним із цих форматів.
Формат шрифту | Значення FontType | Тип об’єкта Aspose.Font |
---|---|---|
TrueType | TTF | TtfFont |
Type 1 | Type 1 | Type1Font |
Compact Font Format (CFF ) | CFF | CffFont |
Взаємозв’язки між форматом файлу шрифту, значенням FontType і типом об’єкта Aspose.Font
Формати вищезгаданих шрифтів із переліку FontType є ширшими термінами, ніж формати файлів для цих шрифтів.
Наприклад, формат TrueType
охоплює такі формати файлів, доступні для завантаження за допомогою Aspose.Font: ttf
, ttc
, eot
, woff
, woff2
. Отже, спільною рисою шрифтів із розширеннями .ttf
, .ttc
, .eot
, .woff
, .woff2
є те, що всі вони пов’язані з сімейством шрифтів TrueType
.
Тому, замінивши в таблиці стовпець «Формат шрифту» на стовпець «Формат файлу шрифту», ми отримаємо наступну таблицю співвідношення між форматами файлу шрифту, підігнавши до них значення FontType, і об’єкти, призначені для роботи з відповідним форматом шрифту в Aspose.Font.
Формат файлу шрифту | Значення FontType | Тип об’єкта Aspose.Font |
---|---|---|
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 |
Функціональність класу Aspose.Font.Font
Функціональність визначається класом Font, який можна розділити на кілька областей.
Функціональні можливості, визначені інтерфейсами, які реалізує клас Font
Найважливішим інтерфейсом у списку інтерфейсів шрифтів є інтерфейс IFont. Він надає властивості для інтерфейсів IGlyphAccessor і IFontSaver, які реалізовані класом Font, тому всі функції, визначені інтерфейсами, які реалізує клас Font, охоплюються цим Інтерфейс IFont.
Інтерфейс IFont визначає властивості, загальні для всіх форматів шрифтів, які підтримуються Aspose.Font. Нижче наведено описи для кожної власності.
Властивості для керування форматами шрифтів
- Рядок FontName - назва шрифту.
- MultiLanguageString FontNames - назва шрифту різними мовами.
- MultiLanguageString PostscriptNames - постскрипт назва шрифту різними мовами.
- Рядок FontFamily - назва сімейства шрифтів. Щоб отримати додаткові відомості про сімейства шрифтів, перегляньте розділ Сімейство шрифтів.
- FontType FontType - тип формату шрифту, представлений переліком FontType.
- FontStyle FontStyle - значення стилю шрифту з переліку FontStyle. Дізнайтеся більше про стилі шрифтів.
- Рядок Style - ім’я стилю шрифту, подібне до властивості FontStyle, представлене у формі необробленого рядка, що надається даними шрифту.
- FontDefinition FontDefinition - об’єкт, який описує формат і джерело для завантаження шрифту. Перейдіть до Як завантажити шрифти, де ви можете детально дізнатися, як працювати з цим об’єктом.
- Інтерфейс 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().
Класи, успадковані від базового класу 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
, після цього префікса йде назва таблиці, а потім слово “Table” закінчує назву класу.
Наприклад, таблиця head
підтримується класом
TtfHeadTable, таблиця hhea
підтримується класом
TtfHheaTable і так далі.
Посилання на всі класи, які підтримують таблиці TrueType
, збираються об’єктом типу
TtfTableRepository.
Клас
TtfFont надає посилання на об’єкт
TtfTableRepository як властивість
TtfTables, тому отримати доступ до будь-якої таблиці TrueType
можна за допомогою синтаксису font.TtfTables
, де font
- це посилання на тип TtfFont
.
Підтримка функцій шрифту OpenType
представлена властивістю
CffFont. Ця властивість повертає посилання на об’єкт
Font, завантажений із таблиці CFF
, яка містить представлення шрифту Compact Font Format
.
Властивість IsSymbolic використовується для визначення того, чи є шрифт символічним – спеціалізованим шрифтом, який складається з неалфавітних символів, графіки або обох.
Доступ до гліфів шрифтів
Клас TtfFont надає розширену функціональність для доступу до гліфів шрифту. На додаток до методів, визначених інтерфейсом IGlyphAccessor, TtfFont надає два перевантажені методи з іменем GetGlyphById(), які вимагають ідентифікаторів гліфів у формі цілого чи рядка.
Використання цих методів працює швидше, ніж використання методу GetGlyphById() з інтерфейсу IGlyphAccessor. Крім того, клас TtfFont надає набір перевантажених методів GetGlyphComponentsById(). Ці методи призначені для роботи зі складеними гліфами.
Композитний гліф – це гліф, який посилається на один або кілька інших гліфів у шрифті. Наприклад, гліф для символу Ä (Unicode U+00C4) може складатися з гліфа для символу A (як основного гліфа) та гліфа діарезису.
Методи GetGlyphComponentsById() беруть ідентифікатор складеного гліфа та повертають список гліфів, на які посилається переданий складений гліф.