从UBUNTU中的TTF文件中查找FontName

时间:2012-06-12 07:20:27

标签: ruby ubuntu fonts true-type-fonts

我需要以编程方式为我的应用程序安装(在Ubuntu中)数百种字体(在Ruby on rails上开发)并跟踪安装时安装的字体名称。

所以我需要UBUNTU中的工具或一些库,它将 TTF文件作为输入并提供字体名称作为输出。

即使在ruby中有某种方式(GEM或任何可以帮助的东西)找到​​给定TTF文件的字体名称,也会有很大的帮助。

先谢谢。

3 个答案:

答案 0 :(得分:4)

我想应该有一种类型的红宝石字体解析器可以做到这一点,但如果你有一点技巧,你可能很容易自己做。您需要两个重要的信息:

阅读标题,找到“名称”表,在“名称”表中搜索nameID 4条目(“全名”,例如“My Cool Font Bold Italic”)。或者如果您只想要姓氏(“我的酷字体”),也可以使用nameID 1。

数据结构非常简单,即使初学者开发人员理解和解析也不会有太多麻烦。

答案 1 :(得分:2)

基本上我使用fop-ttfreader从TTF文件中获取详细信息..

fop-ttfreader fontfile.ttf xmlfile.xml

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

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

这似乎增加到2步,而不是像djangodude所建议的那样,它可以通过解析自己在一个简单的代码中完成。在我的情况下,这将是一个像耙子一样的过程..所以这帮助我完成了我的工作......:P

希望这可以帮助某人。

答案 2 :(得分:0)

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

require 'ttfunk'

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

(摘录自上述gem中的自述文件)