Загрузка шрифтов Type‑1 (PostScript) | .NET

Загрузка шрифтов Type‑1 с Aspose.Font для .NET

Зачем нужны шрифты Type‑1?

Что необходимо

ЭлементМинимальная версия
.NET Framework4.6 (или .NET Core 2.x / .NET 5+)
Aspose.Font for .NET23.12 или новее
LicenseДействительный файл .lic (необязательно для пробной версии – иначе работает 30‑дневная оценка).

Добавьте пакет NuGet в ваш проект:

1dotnet add package Aspose.Font

Основные концепции API

Класс / ПеречислениеНазначение
FontDefinitionОписывает какой тип шрифта вы хотите открыть (FontType.Type1).
FontFileDefinitionОписывает где находится шрифт – файловая система (FileSystemStreamSource), память (ByteContentStreamSource) или любой пользовательский источник потока.
FontTypeПеречисление, которое сообщает Aspose ожидаемый формат (CFF, TTF, Type1, …).
Aspose.Font.Font.Open(fd)Статический метод, который читает определение и возвращает реализацию IFont (Type1Font).
Type1FontКонкретный класс, предоставляющий глифы, метрики, кодировку и возможности отображения для шрифтов Type‑1.

Загрузка шрифта Type‑1 с диска

 1using System;
 2using System.IO;
 3using Aspose.Font;
 4using Aspose.Font.Sources;
 5
 6// Путь к файлу .pfb или .pfa
 7string fileName = @"C:\Fonts\courier.pfb";   // измените на свой файл
 8
 9// Убедитесь, что файл существует
10if (!File.Exists(fileName))
11    throw new FileNotFoundException($"Font file not found: {fileName}");
12
13// Формируем FontDefinition, указывающий Aspose, что это шрифт Type‑1.
14FontDefinition fd = new FontDefinition(
15    FontType.Type1,                                 // подсказка формата
16    new FontFileDefinition(
17        "pfb",                                      // подсказка расширения (pfb или pfa)
18        new FileSystemStreamSource(fileName)));    // читает напрямую из файловой системы
19
20// Загружаем шрифт
21Type1Font font = Aspose.Font.Font.Open(fd) as Type1Font;
22
23// Проверяем, действительно ли шрифт загружен
24if (font == null)
25    throw new InvalidOperationException("Unable to load the Type‑1 font.");

Загрузка Type‑1 из памяти

1byte[] fontBytes = File.ReadAllBytes(fileName);
2FontDefinition fd = new FontDefinition(
3    FontType.Type1,
4    new FontFileDefinition("pfb", new ByteContentStreamSource(fontBytes)));
5Type1Font font = Aspose.Font.Font.Open(fd) as Type1Font;

Подсказка: Строка "pfb" служит лишь подсказкой. Для ASCII‑кодированных файлов Type‑1 используйте "pfa".

Заключение

Have any questions about Aspose.Font?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.