将 Type1 字体转换为 TrueType | C# .NET API 解决方案

概述

本文讲解如何使用 C# 将 Type1 字体转换为 TTF 字体。内容涵盖以下主题:

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

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

什么是 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 字体文件中的信息,在输出设备(无论是激光打印机还是照排机)上准确地渲染文本。

C# 如何将 Type1 字体转换为 TrueType

要转换给定的 Type1 字体,包含该字体的文件必须仅包含该字体,不包含任何其他内容。这可以是仅包含该字体的 PFB 文件或 PS 文件。实际上,这就是转换所需的全部内容。

因此在 C# 中将 Type1 字体转换为 TrueType 字体只需两个步骤如下:

  1. 调用静态方法PsDocument.ConvertType1FontToTTF,传递源 Type1 字体文件路径和所需的 TTF 输出路径——此方法无需实例化“PsDocument”对象即可执行转换。
  2. (可选)如果您需要在转换后处理文档,请使用源文件创建PsDocument实例;否则,上述静态调用足以进行简单的转换。

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

使用 C# 将 Type1 字体转换为 TTF

在以下 C# 代码片段 中,我们将 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(DataDir + "Type1_Arial_Bold.ps", OutputDir);

请参阅 JavaC++ 中的“将 Type1 字体转换为 TTF”。

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

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