Преобразование TTF в WOFF и WOFF2 с помощью Java.

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

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

API Java для преобразования TTF в WOFF и WOFF2

Для преобразования TTF в WOFF мы будем использовать API Aspose.Font for Java. Он предоставляет класс FontFileDefinition, представляющий определение файла шрифта. Он также предоставляет класс FontDefinition, который представляет определение набора файлов шрифтов и предоставляет основные сведения о шрифте, такие как имя, тип и т. д. Метод Open() этого класса возвращает FontDefinition для файла шрифта и типа шрифта. Мы можем преобразовать загруженный шрифт в другие форматы, используя метод SaveToFormat() класса Font. Более того, API позволяет загружать, сохранять и извлекать информацию из поддерживаемых типов шрифтов.

Пожалуйста, либо загрузите JAR API, либо добавьте следующую конфигурацию pom.xml в приложение Java на основе Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-font</artifactId>
    <version>21.12</version>
    <type>pom</type>
</dependency>

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

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

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

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

// В этом примере кода показано, как преобразовать TTF в WOFF.
// Путь к TTF-файлу
String fontPath = "C:\\Files\\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 = "C:\\Files\\TtfToWoff_out1.woff";
FileOutputStream outStream = new FileOutputStream(outPath);

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

Преобразование TTF в WOFF2 с помощью Java

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

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

// В этом примере кода показано, как преобразовать TTF в WOFF2.
// Путь к TTF-файлу
String fontPath = "C:\\Files\\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 = "C:\\Files\\TtfToWoff_out1.woff2";
FileOutputStream outStream = new FileOutputStream(outPath);

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

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

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

Вывод

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

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