使用 Java 将 TTF 转换为 WOFF 和 WOFF2。

WOFF (Web Open Font Format) 基本上是 TTF (True Type Font) 但它包含特定格式的压缩和附加的 XML 元数据。 WOFF2 是 WOFF 的扩展版本。与 WOFF 相比,它提供了更多的压缩。 WOFF 和 WOFF2 都用于网页。另一方面,TTF (True Type Font) 在所有数字平台上都能正常工作,并在屏幕和打印文档中提供出色的质量。在某些情况下,我们可能需要在 Java 应用程序中以编程方式将 true-type 字体转换为 Web 字体。在本文中,我们将学习如何使用 Java 将 TTF 转换为 WOFF 和 WOFF2。

本文将涵盖以下主题:

用于将 TTF 转换为 WOFF 和 WOFF2 的 Java API

为了将 TTF 转换为 WOFF,我们将使用 Aspose.Font for Java API。它提供了代表字体文件定义的 FontFileDefinition 类。它还提供了表示字体文件集定义的 FontDefinition 类,并提供了字体的基本详细信息,例如名称、类型等。该类的 Open() 方法返回字体文件和字体类型的 FontDefinition。我们可以使用 Font 类的 SaveToFormat() 方法将加载的字体转换为其他格式。此外,API 允许从 支持的字体类型 加载、保存和提取信息。

下载 API 的 JAR 或在基于 Maven 的 Java 应用程序中添加以下 pom.xml 配置。

<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>

使用 Java 将 TTF 转换为 WOFF

我们可以按照以下步骤轻松地将 True Type 字体 (TTF) 转换为 Web 开放字体格式 (WOFF):

以下代码示例演示了如何使用 Java 将 TTF 转换为 WOFF。

// 此代码示例演示如何将 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);

使用 Java 将 TTF 转换为 WOFF2

WOFF2 是 WOFF 的更新版本。它提供了更多的压缩,因为它的文件大小更小,并为现代浏览器提供了更好的性能。我们也可以按照前面提到的步骤将 TTF 转换为 WOFF2。但是,我们只需要在最后一步中将 FontSavingFormats 设置为 WOFF2。

以下代码示例演示了如何使用 Java 将 TTF 转换为 WOFF2。

// 此代码示例演示如何将 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);

获得免费许可证

您可以获得免费的临时许可证 试用该库而不受评估限制。

结论

在本文中,我们学习了如何在 Java 中将 True Type 字体转换为 Web Open Fonts。我们还看到了如何以编程方式将 TTF 保存为 WOFF2。此外,您可以使用 documentation 了解有关 Aspose.Font for Java API 的更多信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看