Загрузка файлов Web‑Open‑Font (WOFF) | .NET
Contents
[
Hide
Show
]Загрузка файлов Web‑Open‑Font (WOFF) с помощью Aspose.Font для .NET
Что вам нужно
| Элемент | Описание | Где получить |
|---|---|---|
| Aspose.Font для .NET | Основная библиотека, которая читает, записывает и преобразует файлы шрифтов (включая WOFF/WOFF2). | dotnet add package Aspose.Font или через интерфейс NuGet (https://www.nuget.org/packages/Aspose.Font). |
| Целевая платформа | .NETFramework4.x / .NETCore3.x / .NET5/6/7 – любая платформа, поддерживаемая Aspose.Font. | Дополнительная среда выполнения не требуется. |
| Импорт пространств имен | csharp\nusing Aspose.Font;\nusing Aspose.Font.Sources;\nusing System.IO;\n |
Совет: Вся документация по API находится по адресу https://reference.aspose.com/font/net/.
Загрузка файла WOFF из файловой системы
Пошагово
- Найдите файл шрифта (например,
C:\Fonts\MyWebFont.woff). - Создайте FileSystemStreamSource, который передает библиотеке поток в этот файл.
- Оберните источник потока в FontFileDefinition — укажите расширение «woff» (библиотека использует его для выбора правильного парсера).
- Создайте FontDefinition — передайте соответствующий FontType («Woff») и FontFileDefinition.
- Откройте шрифт через
Font.Open()— вы получите объект, производный отAspose.Font.Font(например,WoffFont).
1using System;
2using System.IO;
3using Aspose.Font;
4using Aspose.Font.Sources;
5
6class LoadWoffExample
7{
8 static void Main()
9 {
10 // Path to the .woff file
11 string woffPath = @"C:\Fonts\MyWebFont.woff";
12
13 // Stream source that reads directly from the file system
14 FileSystemStreamSource streamSrc = new FileSystemStreamSource(woffPath);
15
16 // FontFileDefinition – we tell Aspose it is a “woff” file
17 FontFileDefinition fileDef = new FontFileDefinition("woff", streamSrc);
18
19 // FontDefinition – specify the font type (Woff)
20 FontDefinition fontDef = new FontDefinition(FontType.WOFF, fileDef);
21
22 // Load the font
23 Font woffFont = Font.Open(fontDef);
24
25 // woffFont now gives you access to glyphs, metrics, encoding, etc.
26 Console.WriteLine($"Loaded font: {woffFont.GetType().Name}");
27 }
28}Результат:
woffFont— это экземплярAspose.Font.Woff.WoffFont. Теперь вы можете отображать текст, проверять метрики глифов или преобразовывать его в другой формат (TTF, SVG и т. д.).
Альтернативные способы загрузки шрифтов WOFF
Загрузка из массива байтов (например, когда шрифт встроен в ресурс или загружен по HTTP)
1byte[] woffBytes = File.ReadAllBytes(@"C:\Fonts\MyWebFont.woff");
2
3// ByteContentStreamSource wraps the byte[] as a readable stream
4ByteContentStreamSource byteSrc = new ByteContentStreamSource(woffBytes);
5
6// Create definition – note we still supply "woff" as extension
7FontDefinition fd = new FontDefinition(FontType.WOFF,
8 "woff",
9 byteSrc);
10
11Font woffFont = Font.Open(fd);Загрузка напрямую из потока без промежуточного FileDefinition
Если у вас уже есть открытый FileStream:
1using (FileStream fs = File.OpenRead(@"C:\Fonts\MyWebFont.woff"))
2{
3 // Wrap the live FileStream in FileSystemStreamSource
4 var streamSrc = new FileSystemStreamSource(fs);
5
6 // Directly pass stream source + extension into FontDefinition
7 var fd = new FontDefinition(FontType.WOFF, "woff", streamSrc);
8 var woffFont = Font.Open(fd);
9}Оба подхода используют одни и те же базовые классы, меняется только источник байтов (файл на диске, память или пользовательский поток).
После загрузки – что делать?
- Рендеринг текста — используйте подсистему Aspose.Font.Rendering или экспортируйте контуры глифа.
- Чтение показателей шрифта – например.
((WoffFont)woffFont).Метрики. - Преобразовать в другой формат — вызовите
font.Save("output.ttf");после приведения к соответствующему подклассу или использования общего API. - Подмножество/объединить — объединить несколько шрифтов в одну коллекцию.
- Извлечь информацию о лицензии — если она присутствует в заголовке WOFF.
Все это продемонстрировано в официальном репозитории примеров:
📂 https://github.com/aspose-font/Aspose.Font-Documentation/tree/master/net-examples
Быстрый контрольный список (для страниц документации)
- ✅ Добавьте значок NuGet:
[](https://www.nuget.org/packages/Aspose.Font/) - ✅ Включите пример блока кода (как показано выше) с правильной подсветкой синтаксиса.
- ✅ Упомяните таблицу поддерживаемых расширений (копия из раздела 2 выше).
- ✅ Ссылка на справочник по API для:
Aspose.Font.Font.OpenAspose.Font.Sources.FileSystemStreamSourceAspose.Font.Sources.ByteContentStreamSourceAspose.Font.FontFileDefinitionAspose.Font.FontDefinition
- ✅ Предоставьте ссылки «Дальнейшее чтение»:
- Getting started: https://docs.aspose.com/font/net/getting-started/
- Full API reference: https://reference.aspose.com/font/net/
- Free online demo: https://products.aspose.app/font/conversion
- ✅ Добавьте совет по устранению неполадок: Если вы получаете сообщение «Неподдерживаемый формат шрифта», убедитесь, что вы передали как «FontType.WOFF», так и расширение «woff».