在Ubuntu中从TTF文件中查找字体名称

5
我需要在Ubuntu中以编程方式安装数百种字体用于我的应用程序(使用Ruby on Rails开发),并在安装过程中跟踪已安装的字体名称。
因此,我需要一个工具或库在Ubuntu中以TTF文件作为输入并提供Font-Name作为输出。
即使在Ruby中有一些方法(如GEM或其他可以帮助找到给定TTF文件的字体名称的方法),也将是非常有帮助的。
提前致谢。

你搜索了什么内容?我觉得搜索“ruby ttf parser”竟然没有任何有用的结果是不太可能的... - J. Holmes
3个回答

4
我想应该有一种Ruby字体解析器可以做到这一点,但如果您有一些技能,您可能可以很容易地自己制作。您需要两个重要的信息: 读取头文件,定位'name'表,在'name'表中搜索nameID 4条目(“全名”,例如“My Cool Font Bold Italic”)。或者如果您只想要系列名称(“My Cool Font”),则可以选择nameID 1。
数据结构非常简单,即使是初学者开发人员也不应该有太多麻烦来理解和解析。

谢谢djangodude。这些链接帮助我理解字体文件的结构。但是我找到了另一个解决方案,可能有点混乱.. :P 无论如何,在下面发布它... :) - max

2
基本上,我使用fop-ttfreader从TTF文件中获取详细信息...
fop-ttfreader fontfile.ttf xmlfile.xml

http://manpages.ubuntu.com/manpages/natty/man1/fop-ttfreader.1.html

现在可以解析此xml文件并获取字体详细信息。

看起来这似乎已经增加为2个步骤,而根据djangodude的建议,可以通过自行解析代码以简单的方式完成。在我的情况下,这将是一个像rake一样的一次性过程。所以这帮助我完成我的工作... :P

希望这可以帮助某些人。


1

ttfunk gem会帮你完成大部分繁重的工作,无需自己进行任何解析:

require 'ttfunk'

file = TTFunk::File.open("some/path/myfont.ttf")
puts "name: #{file.name.font_name.join(', ')}"

(来自所述宝石的自述文件的摘录)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接