将 Type1 字体转换为 TrueType | Java API 解决方案

概述

本文介绍如何使用 Java 将 Type1 字体转换为 TTF 字体。内容涵盖以下主题:

了解 Type 1 字体及其在 PostScript 中的使用

Type 1 字体由 Adob​​e 于 20 世纪 80 年代开发,是数字排版的关键组成部分,尤其是在桌面出版和图形设计领域。这些字体因其高质量的渲染效果以及与 PostScript 页面描述语言的兼容性而广受认可,而 PostScript 页面描述语言彻底改变了印刷行业。

什么是 Type 1 字体?

Type 1 字体是一种基于矢量的字体格式,支持可扩展和高分辨率的文本渲染。它包含两个主要文件:包含字体矢量轮廓的轮廓文件(扩展名为 .PFB)和提供字体度量信息(例如字符宽度和字距调整数据)的度量文件(扩展名为 .AFM)。这种轮廓和度量的分离使得字体数据的存储和操作更加高效。 但是,.PFB 文件可以独立于 .AFM 文件使用。

Type 1 字体的优势

PostScript 中的 Type 1 字体

Type 1 字体是 PostScript 不可或缺的一部分,因为它们提供了呈现高质量文本所需的信息。处理 PostScript 文件时,文本显示指令会链接到相应的 Type 1 字体文件。

在 PostScript 文档中,文本是使用引用 Type 1 字体的命令来定义的。例如,命令可以指定要使用的字体、文本的大小和位置。然后,PostScript 解释器会使用 Type 1 字体文件中的信息,在输出设备(无论是激光打印机还是照排机)上准确地呈现文本。

Java 如何将 Type1 字体转换为 TrueType

要转换给定的 Type1 字体,包含该文件的文件必须仅包含该字体,不包含任何其他内容。该文件可以是 PFB 文件,也可以是仅包含该字体的 PS 文件。转换所需的一切就这些。

因此,在 Java 中将 Type1 字体转换为 TrueType 字体只需以下两个步骤:

  1. 创建一个新的 PsDocument 对象。
  2. 使用静态方法 convertType1FontToTTF 将输入的 Type1 字体转换为 TTF 字体。

您可以在我们的Type1 Converter网页应用程序上在线查看 Type1 字体到 TTF 格式的转换功能。

在 Java 中将 Type1 字体转换为 TTF 字体

在以下 Java 代码片段中 我们将 Type1 字体转换为 TrueType 字体:

1// Convert Type1 font from "*.ps", ".pfa" or ".pfb" file.
2
3//Create ne PsDocument object
4PsDocument doc = new PsDocument();
5
6//Convert Type1 font from the file 'Type1_Arial_Bold.ps' to TTF font in DataDir folder.
7//Exstension of file can be ".pfa", ".pfb", ".ps" or something else. The main thing is that there is a font Type1 inside.
8doc.convertType1FontToTTF(getDataDir() + "Type1_Arial_Bold.ps", getOutputDir());

请参阅 .NET 和 C++ 中的 Type1 字体转换为 TTF 字体。

通过Type1 字体转换网页应用程序在线评估 Type1 字体到 TTF 字体的转换效果。您可以在几秒钟内将 Type1 字体转换为 TTF 字体并下载结果。

您可以从 GitHub 下载示例和数据文件。