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 с помощью Java
- Преобразование TTF в 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, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.