Загрузка шрифтов Type‑1 (PostScript) | .NET
Contents
[
Hide
Show
]Загрузка шрифтов Type‑1 с Aspose.Font для .NET
Зачем нужны шрифты Type‑1?
- Шрифты Type‑1 (PostScript) – .pfb (бинарные) и .pfa (ASCII) – по‑прежнему используются во многих устаревших потоках публикаций и САПР.
- Aspose.Font может читать, анализировать, отображать и конвертировать эти шрифты без каких‑либо внешних зависимостей, что делает его идеальным для серверной обработки и генерации документов.
Что необходимо
| Элемент | Минимальная версия |
|---|---|
| .NET Framework | 4.6 (или .NET Core 2.x / .NET 5+) |
| Aspose.Font for .NET | 23.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".
Заключение
- Aspose.Font упрощает загрузку и работу с устаревшими шрифтами Type‑1: определяете источник (
FileSystemStreamSource,ByteContentStreamSource, …), открываете черезAspose.Font.Font.Openи мгновенно получаете доступ к метрикам, таблицам кодировок и мощным API отображения. - Та же схема применяется к шрифтам CFF и TrueType/OpenType — достаточно заменить
FontType.Type1на соответствующее значение перечисления.