Перетворення шрифтів. Додаткові відомості | .NET
У деяких випадках є сенс прочитати/змінити перетворені дані шрифту перед збереженням шрифту.
Метод Aspose.Font.Font.Convert(FontType fontType) був розроблений для таких випадків. Цей метод перетворює шрифт у вказаний тип і повертає об’єкт, успадкований від класу Aspose.Font.Font, який відповідає значенню FontType, переданому в метод Convert().
Наступна таблиця показує карту узгодженості між значеннями FontType та об’єктами, успадкованими від базового класу Aspose.Font.Font.
| Тип шрифту | Об’єкт шрифту | 
|---|---|
TTF | Aspose.Font.Ttf.TtfFont | 
Type1 | Aspose.Font.Type1.Type1Font | 
CFF | Aspose.Font.Cff.CffFont | 
OTF | Aspose.Font.Ttf.TtfFont | 
Використовуйте об’єкт результуючого шрифту, щоб отримати доступ до властивостей шрифту або змінити їх перед збереженням результуючого шрифту або замість збереження результуючого шрифту.
На даний момент метод
Convert() підтримує конвертацію лише у формат шрифту TrueType (FontType.TTF), тому завжди повертає об’єкт типу
TtfFont як результат перетворення незалежно від використовуваного вихідного шрифту.
Наступний фрагмент коду завантажує шрифт CFF CenturyGothic з диска, перетворює його у формат TrueType і змінює назву перетвореного шрифту на “CenturyGothic_Converted”.
Виконайте наступні дії:
- Завантажте вихідний шрифт CFF –
 
- Створіть абсолютний шлях до вихідного файлу, використовуючи константу каталогу даних:
 
1string fontPath = Path.Combine(DataDir, "CenturyGothic.cff");Це гарантує правильне розташування файлу незалежно від операційної системи.
- Створіть 
FontFileDefinition, який повідомляє Aspose.Font фізичний формат файлу ("cff") та надає джерело потоку для файлу: 
1var fontFileDef = new FontFileDefinition("cff", new FileSystemStreamSource(fontPath));- Створіть 
FontDefinition, який поєднує потрібний тип шрифту (FontType.CFF) з раніше створенимfontFileDef: 
1var fontDefinition = new FontDefinition(FontType.CFF, fontFileDef);- Відкрийте шрифт за допомогою 
Font.Open(fontDefinition). Метод повертає загальний екземплярFont, який представляє завантажений шрифт CFF і може бути використаний для подальших кроків конвертації. 
- Конвертуйте шрифт на TrueType –
 
- Викличте метод конверсії для попередньо завантаженого об’єкта 
Font: 
1Aspose.Font.Font convertedFont = font.Convert(FontType.TTF);- Метод 
Convertзчитує вихідні дані CFF, застосовує алгоритм конверсії та повертає новий екземплярAspose.Font.Font, який внутрішньо представляє шрифт TrueType (TtfFont). - Цей загальний 
convertedFontможна додатково перетворити на конкретний типAspose.Font.Ttf.TtfFontдля доступу до властивостей, специфічних для TrueType. 
- Приведіть результат до конкретного класу TrueType та перейменуйте –
 
- Безпечно приведіть загальний 
convertedFontдо конкретного класу TrueType: 
1Aspose.Font.Ttf.TtfFont destFont = convertedFont as Aspose.Font.Ttf.TtfFont;- Перевірте, чи приведення пройшло успішно (
destFont != null). Якщо приведення не вдалося, помилка обробиться відповідно. - Встановіть нову назву для конвертованого шрифту:
 
1destFont.FontName = "CenturyGothic_Converted";- Це оновлює внутрішні метадані назви шрифту, які будуть відображені у збереженому файлі.
 
- Підготуйте шлях до вихідного файлу –
 
- Виберіть потрібну назву вихідного файлу, наприклад, 
"CffToTtf_out.ttf". - Створіть повний вихідний шлях, використовуючи константу вихідного каталогу:
 
1string outPath = Path.Combine(OutputDir, "CffToTtf_out.ttf");Path.Combineзабезпечує правильні роздільники шляхів на різних платформах та безпечно об’єднує ім’я каталогу та файлу.
- Збережіть конвертований шрифт TrueType –
 
- Збережіть перейменований шрифт TrueType на диск:
 
1destFont.Save(outPath);- Після збереження ви можете за потреби перевірити, чи файл було створено:
 
1bool exists = System.IO.File.Exists(outPath);- Запис 
outPathабо перевірки існування допомагає підтвердити успішне конвертування та збереження. 
 1 
 2    // Open cff font
 3    string fontPath = Path.Combine(DataDir, "CenturyGothic.cff");
 4    FontDefinition fontDefinition = new FontDefinition(FontType.CFF, new FontFileDefinition("cff", new FileSystemStreamSource(fontPath)));
 5    Font font = Font.Open(fontDefinition);
 6
 7    // Convert font into TrueType format and cast font returned to Aspose.Font.Ttf.TtfFont
 8    Aspose.Font.Ttf.TtfFont destFont = font.Convert(FontType.TTF) as Aspose.Font.Ttf.TtfFont;
 9
10    // Change name of converted font
11    destFont.FontName = "CenturyGothic_Converted";
12
13    // Ttf output settings
14    string outPath = Path.Combine(OutputDir, "CffToTtf_out.ttf");
15
16    // Save resultant font with font name changed
17    destFont.Save(outPath);Повний набір прикладів використання Aspose.Font для.NET розміщено в [Aspose.Font.Examples.sln]( https://github.com/aspose-font/Aspose.Font-Documentation/tree/master/ net-examples) у папці net-examples папки Aspose.Font Документація репозиторій github.