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

概述

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

探索 Type 3 字体及其在 PostScript 中的作用

在数字排版领域,Type 3 字体代表着一种独特且用途广泛的选择,尤其是在 PostScript 页面描述语言中。虽然 Type 3 字体的使用不如 Type 1 字体广泛,但它具有独特的优势和功能,可以在各种设计应用中发挥作用。

什么是 Type 3 字体?

Type 3 字体是 PostScript 中使用的一种字体格式,比 Type 1 等传统轮廓字体具有更大的灵活性。与严格基于矢量并由数学轮廓定义的 Type 1 字体不同,Type 3 字体可以将位图图像和其他图形元素直接融入字体定义中。这意味着 Type 3 字体可以包含复杂的设计,使其适用于创意和艺术应用。 这些字体由纯 PostScript 代码描述。

Type 3 字体的主要特点

  1. 灵活性:Type 3 字体允许设计师在字体本身中包含任何类型的图形表示。这不仅可以包括标准文本字符,还可以包括复杂的设计、徽标或插图,使其成为创意项目的理想选择。

  2. 位图支持:Type 3 字体的突出特点之一是它们能够包含位图图像。这允许将光栅图形直接嵌入到字体中,这对于装饰性文本或特殊图形需求非常有用。

  3. 可定制性:设计师可以根据具体项目定制具有独特特性的 Type 3 字体。这种定制化程度对于品牌推广、广告和艺术创作领域非常有吸引力,因为标准字体可能无法满足这些领域的需要。

PostScript 中的 Type 3 字体

Type 3 字体能够将文本和图形元素同时包含在同一个字体文件中,从而融入 PostScript 生态系统。创建 PostScript 文档时,设计师可以指定 Type 3 字体,从而实现将排版和图像无缝融合的创意应用。

在 PostScript 文件中,可以发出使用 Type 3 字体的命令,然后 PostScript 解释器会根据该字体的定义特征(无论是矢量轮廓、位图还是其他图形组件)进行渲染。这种在单个字体文件中组合文本和图像的功能为印刷材料的创意和表达开辟了新的途径。

Type 3 字体的应用

虽然 Type 3 字体不如 Type 1 字体常见,但它们在特定应用中占有一席之地:

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

要转换给定的 Type3 字体,包含该字体的文件必须仅包含该字体或一些其他 PostScript 代码。文件的扩展名可以是任何格式,不仅限于 PS,但必须仅包含 PostScript 代码。实际上,这就是转换所需的全部内容。

因此,在 C# 中将 Type3 字体转换为 TrueType 字体只需两步

  1. 使用静态方法 PsDocument.ConvertType3FontToTTF(sourcePath, outputPath) 直接转换 Type3 字体,无需实例化 PsDocument 对象。
  2. (可选)如果转换后需要进一步操作文档,请使用源文件创建 PsDocument 实例。

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

在 C# 中将 Type3 字体转换为 TTF 字体

在以下 C# 代码片段 中,我们将 Type3 字体转换为 TrueType 字体

 1// Convert Type1 font from "*.ps" file.
 2
 3//Create ne PsDocument object
 4PsDocument doc = new PsDocument();
 5
 6//Convert outline Type3 font from the file 'Type3_outline.ps' to TTF font in dataDir folder.
 7//Exstension of file can be ".ps" or something else. The main thing is that there is a font Type3 inside.
 8doc.ConvertType3FontToTTF(DataDir + "Type3_outline.ps", OutputDir);
 9
10//Convert bitmap Type3 font from the file 'Type3_bitmap.ps' to TTF font in DataDir folder.
11doc.ConvertType3FontToTTF(DataDir + "Type3_bitmap.ps", OutputDir);

请参阅 JavaC++ 中的 Type3 字体转换为 TTF 字体。

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

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