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):
- 首先,使用 FileSystemStreamSource 类加载字体文件。
- 接下来,使用源文件对象作为参数创建 FontFileDefinition 类的实例。
- 然后,初始化Font类型为TTF的FontDefinition类对象和FontFileDefinition对象。
- 之后,使用 Font.Open() 方法打开字体,并将 FontDefinition 对象作为参数。
- 最后调用SaveToFormat()方法保存。它将输出文件路径和 FontSavingFormats 到 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 的更多信息。如有任何歧义,请随时在 论坛 上与我们联系。