Python FontForge的替代品

Python FontForge的替代品,python,fonts,fontforge,Python,Fonts,Fontforge,我使用Ubuntu下FontForge的python绑定。它经常在没有任何原因线索的情况下崩溃,例如分段错误、内存映射错误等 我所需要的只是读取字体文件的(.ttf和.otf)元数据(字体名称、姓氏、版本、唯一id、版权、许可证、设计器、设计器url等)并计算它拥有的字形 fontforge是否有其他更稳定地完成上述工作的替代方案?任何建议都将不胜感激。我以前在ubuntu x64上也遇到过fontforge问题 我使用它来添加opentype规则,但当我试图修改这些元数据时,有时会发生错误 最

我使用Ubuntu下FontForge的python绑定。它经常在没有任何原因线索的情况下崩溃,例如分段错误、内存映射错误等

我所需要的只是读取字体文件的(.ttf和.otf)元数据(字体名称、姓氏、版本、唯一id、版权、许可证、设计器、设计器url等)并计算它拥有的字形


fontforge是否有其他更稳定地完成上述工作的替代方案?任何建议都将不胜感激。

我以前在ubuntu x64上也遇到过fontforge问题

我使用它来添加opentype规则,但当我试图修改这些元数据时,有时会发生错误

最新的svn要好得多,我的意思是最少的崩溃,我使用以下指南从svn安装

另一个选择是您只需要元数据,对吗

在这种情况下,您可以将其保存为fontforge文件.sfd,因为它是文本文件, 您可以从python中逐行阅读它

FontName: -----
FullName: ------
FamilyName: ------
Weight: -----
...
很抱歉只谈论fontforge,因为它是我以前唯一用作字体编辑器的

我所需要的只是读取字体文件的(.ttf和.otf)元数据(字体名称、姓氏、版本、唯一id、版权、许可证、设计器、设计器url等)并计算它拥有的字形


这很好,转储到.sfd文件很有效。但是,我需要所有glyph的元数据和unicode值。我在.sfd文件中看到了类似“StartChar:numbersign Encoding:356”的内容。如何将“356”转换为unicode数字?可能是这样的
unichr(int(re.search(“Encoding:(\d+),x.group(1)))
不过有点脏。它可以工作。你知道第三个值(在上面的例子中是6)代表什么吗?我相信它从一开始就是字形索引,在fontforge UI菜单中,Encoding->Compact,你只会看到字体中包含的glpyhs,第一个值是0,然后是1,2,3等等,我想它只是供fontforge内部使用我很好奇,当你运行上面的命令时,它返回的是什么,只是在一个文本文件中?它可以通过PHP系统调用运行吗?