尝试重建你的 Fonforge。因为代码应该可以工作。我测试了它,它运行良好。
我使用Homebrew成功安装了带有 Python 扩展的 Fontforge 。这是信息:
allcaps$ brew info fontforge
fontforge: stable 20120731, HEAD
http://fontforge.org/
/usr/local/Cellar/fontforge/20120731 (377 files, 16M) *
Built from source with: --with-x
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/fontforge.rb
==> Dependencies
Required: gettext ✘, fontconfig ✔
Recommended: jpeg ✔, libtiff ✔
Optional: cairo ✔, pango ✘, libspiro ✘, czmq ✘
==> Options
--with-cairo
Build with cairo support
--with-czmq
Build with czmq support
--with-gif
Build with GIF support
--with-libspiro
Build with libspiro support
--with-pango
Build with pango support
--with-x
Build with X11 support, including FontForge.app
--without-jpeg
Build without jpeg support
--without-libpng
Build without libpng support
--without-libtiff
Build without libtiff support
--without-python
Build without python support
--HEAD
install HEAD version
==> Caveats
Set PYTHONPATH if you need Python to find the installed site-packages:
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
.app bundles were installed.
Run `brew linkapps` to symlink these to /Applications.
当然,使用您需要的所有标志设置PYTHONPATH
运行brew install fontforge
。
跑brew linkapps
更新
从空字体开始,所以字体不是问题:
import fontforge
font = fontforge.font() # create a new font
包括一个字形列表(应该不是必需的)下载:http ://partners.adobe.com/public/developer/en/opentype/glyphlist.txt然后:
import fontforge
fontforge.loadNamelist('glyphlist.txt') # load a name list
...
按代码点创建字形。createChar(uni[,name])
'A' 是 65 所以
char = font.createChar(65)
字形及其代码点:
>>> for c in u'ABC 賢治': print ord(c).
>>> 65, 66, 67, 32, 36066, 27835.
Unicode 联盟定义了 Unicode 标准。“中日韩统一表意文字”存在于“基本多语言平面 (BMP)”中。
可以在字体中按名称引用没有 unicode 点的字形。并且对于开放类型功能或构建块以组成新字形很有用。您可以像这样创建它们:
font.createChar(-1, 'some_name')
更新 2
您应该使用 AGL 字形名称来命名出现在Adobe 字形列表中的所有字形。其余字形应命名为 Unicode 索引uniXXXX
在哪里。XXXX
在开发过程中,您可以使用任何人类可读的名称。因此,使用您自己的命名并在生成用于运输的字体时替换它。见嗜好。