1. 产品
  2.   Font
  3.   Python
  4.   FontForge
 
  

免费 Python 库,用于字体创建与转换

开源 Python API,允许创建、修改和转换 OpenType、TrueType、UFO、CID-keyed 等多种字体文件格式。

FontForge 是一款功能强大且特性丰富的字体编辑工具,已在软件开发者、字体设计师和字体爱好者中获得广泛关注。凭借其完整的工具集和直观的界面,该库为在 Python 应用程序中创建、编辑和操作字体提供了强大的平台。由 George Williams 及活跃的贡献者社区开发,它提供了用户友好的界面以及全面的工具,帮助用户塑造和完善字体的每一个细节。

FontForge,最初名为 PfaEdit,已开发超过二十年。凭借丰富的历史,这款开源字体编辑器因其跨平台兼容性而受到欢迎,支持 Windows、macOS 和 Linux 等主要操作系统。该库拥有大量功能,满足字体设计师的多样需求,成为业内专业人士的首选工具。库支持的一些关键功能包括字形设计与编辑、导入和导出其他支持的文件格式、字体微调(hinting)支持、先进的字体转换、Unicode 与多语言支持、字体优化等。

FontForge 提供了用户友好的界面,使其对初学者和有经验的设计师都易于使用,并且无疑已成为寻求以精确、创意和高效方式创建和完善字体的用户的首选工具。无论您是字体爱好者、专业设计师还是字体开发者,该库都能帮助您释放创意,将您的排版愿景变为现实。凭借其开源特性、跨平台兼容性和活跃的社区,它是创建和管理字体文件格式的绝佳选择。

Previous Next

开始使用 FontForge

推荐的 FontForge 安装方式是使用 CMake。请使用以下命令以实现顺利安装。

通过 CMake 安装 FontForge

 git clone https://github.com/fontforge/fontforge && cd fontforge && mkdir build && cd build
cmake -GNinja ..
ninja
 

您也可以手动安装;直接从 GitHub 仓库下载最新的发布文件。

使用 Python 创建新字体

开源的 FontForge 库允许软件开发者只需几行代码,就能在 Python 应用程序中创建和管理新字体。软件开发者还可以通过添加更多字形、调整其属性以及探索库提供的各种功能,进一步自定义字体。它支持 Bézier 和 PostScript 轮廓,提供对曲线操作、点编辑和路径调整的广泛控制。以下示例展示了软件开发者如何使用 Python 命令创建新字体。

如何使用 Python 应用程序创建新字体?

import fontforge
import psMat
// Create a new FontForge font object
font = fontforge.font()
// Set font properties
font.fontname = "MyFont"
font.fullname = "My Font"
font.familyname = "My Font Family"
// Create a new glyph
glyph = font.createChar(65, "A")  # 65 is the ASCII code for 'A'
// Set glyph properties
glyph.width = 600  # Set the width of the glyph
// Draw the glyph using FontForge's drawing functions
glyph.addReference("A")  # Add a reference to the 'A' glyph
//Save the font file
font.generate("myfont.ttf")
// Export the font in a different format
font.generate("myfont.otf")
font.generate("myfont.ps")

通过 Python API 导入和转换字体

FontForge 让软件开发者能够轻松在 Python 应用程序中加载和转换字体。它促进了各种格式的字体导入和转换。它支持常用格式,如 TrueType(TTF)、OpenType(OTF)和 PostScript(PS),使开发者能够无缝导入现有字体进行修改,或导出他们的创作以在不同环境中使用。用户可以轻松导入现有字体文件,从而对现有字形进行修改和增强。此外,该库支持在不同格式之间转换字体,实现跨多种设计和出版平台的兼容性。

通过 Python 将字体导出为不同格式

font.generate("myfont.otf")
font.generate("myfont.ps")
 中国人