Преобразование TTF в WOFF с помощью C#

Шрифты определяют графическое представление отдельного символа в тексте, например его размер, стиль отображения, толщину, цвет и т. д. TTF (True Type Font) отлично работает на всех цифровых платформах и обеспечивает отличное качество на всех цифровых платформах. экране и в печатных документах. С другой стороны, WOFF (формат веб-открытого шрифта) в основном используется на веб-страницах. Он содержит специфичное для формата сжатие и дополнительные метаданные XML. В некоторых случаях нам может потребоваться преобразовать шрифты истинного типа в веб-шрифты. В этой статье мы узнаем, как конвертировать TTF в WOFF с помощью C#.

В этой статье должны быть раскрыты следующие темы:

API конвертера C# TTF в WOFF

Для преобразования TTF в WOFF мы будем использовать API Aspose.Font for .NET. Он позволяет загружать, сохранять и извлекать информацию из поддерживаемых типов шрифтов. Пожалуйста, загрузите DLL API или установите его с помощью NuGet.

PM> Install-Package Aspose.Font

Преобразование TTF в WOFF с помощью C#

Мы можем легко преобразовать шрифты True Type (TTF) в открытые веб-шрифты (WOFF), выполнив следующие шаги:

  • Во-первых, загрузите файл шрифта с помощью класса FileSystemStreamSource.
  • Затем создайте экземпляр класса FontFileDefinition с объектом исходного файла в качестве аргумента.
  • Затем инициализируйте объект класса FontDefinition с типом шрифта как TTF и объектом FontFileDefinition.
  • После этого откройте шрифт с помощью метода Font.Open() с объектом FontDefinition в качестве аргумента.
  • Наконец, вызовите метод SaveToFormat(), чтобы сохранить его. Он принимает путь к выходному файлу и FontSavingFormats в WOFF в качестве аргументов.

В следующем примере кода показано, как преобразовать TTF в WOFF с помощью C#.

// В этом примере кода показано, как преобразовать TTF в WOFF.
// Путь к TTF-файлу
string fontPath = @"D:\Files\font\Montserrat-Regular.ttf";

// Загрузите файл шрифта
FileSystemStreamSource source = new FileSystemStreamSource(fontPath);

// Создать определение файла шрифта
FontFileDefinition fileDefinition = new FontFileDefinition(source);

// Создать определение шрифта
FontDefinition fontDefinition = new FontDefinition(FontType.TTF, fileDefinition);

// Открытый шрифт
Font font = Font.Open(fontDefinition);

// Выходной путь WOFF
string outPath = @"D:\Files\font\TtfToWoff_out1.woff";
FileStream outStream = File.Create(outPath);

// Конвертировать TTF в WOFF
font.SaveToFormat(outStream, FontSavingFormats.WOFF);

Преобразование TTF в WOFF2 в C#

WOFF2 — это обновленная версия WOFF. Он предлагает большее сжатие, благодаря чему имеет меньший размер файла и обеспечивает лучшую производительность для современных браузеров. Мы также можем преобразовать TTF в WOFF2, выполнив шаги, упомянутые ранее. Однако нам просто нужно установить FontSavingFormats как WOFF2 на последнем шаге.

В следующем примере кода показано, как преобразовать TTF в WOFF2 с помощью C#.

// В этом примере кода показано, как преобразовать TTF в WOFF2.
// Путь к TTF-файлу
string fontPath = @"D:\Files\font\Montserrat-Regular.ttf";

// Загрузите файл шрифта
FileSystemStreamSource source = new FileSystemStreamSource(fontPath);

// Создать определение файла шрифта
FontFileDefinition fileDefinition = new FontFileDefinition(source);

// Создать определение шрифта
FontDefinition fontDefinition = new FontDefinition(FontType.TTF, fileDefinition);

// Открытый шрифт
Font font = Font.Open(fontDefinition);

// Выходной путь WOFF
string outPath = @"D:\Files\font\TtfToWoff_out1.woff";
FileStream outStream = File.Create(outPath);

// Конвертировать TTF в WOFF
font.SaveToFormat(outStream, FontSavingFormats.WOFF2);

Получить бесплатную лицензию

Вы можете получить бесплатную временную лицензию, чтобы попробовать библиотеку без ограничений пробной версии.

Вывод

В этой статье мы узнали, как преобразовать шрифты True Type в шрифты Web Open на C#. Мы также видели, как программно сохранить TTF как WOFF2. Кроме того, вы можете узнать больше об Aspose.Font for .NET API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также