Ruby 在UBUNTU中从TTF文件中查找FontName

Ruby 在UBUNTU中从TTF文件中查找FontName,ruby,ubuntu,fonts,truetype,Ruby,Ubuntu,Fonts,Truetype,我需要以编程方式(在Ubuntu中)为我的应用程序(在RubyonRails中开发)安装数百种字体,并在安装时跟踪安装的字体名称 所以我需要一个UBUNTU中的工具或库,它以TTF文件作为输入,并提供字体名作为输出 即使在ruby(GEM或任何有帮助的东西)中有某种方法可以通过给定的TTF文件找到字体名称,也会有很大的帮助 提前谢谢。我想应该有一个ruby字体解析器可以做到这一点,但是如果你有一点技能,你可能会很容易地创建自己的。您需要两条重要信息: (存储字体名称的位置) 阅读标题,找到

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

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

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


提前谢谢。

我想应该有一个ruby字体解析器可以做到这一点,但是如果你有一点技能,你可能会很容易地创建自己的。您需要两条重要信息:

  • (存储字体名称的位置)
阅读标题,找到“name”表,搜索“name”表中的nameID 4条目(“全名”,例如“My Cool Font Bold Italic”)。如果你只想知道姓氏(“我的酷字体”),也可以使用nameid1


数据结构非常简单,即使是初学者也不难理解和解析。

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

fop-ttfreader fontfile.ttf xmlfile.xml

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

这看起来像是增加了2个步骤,而不是像djangodude建议的那样,它可以通过解析自己在一个简单的代码中完成。在我的情况下,这将是一个像耙子一样的一次性过程。。因此,这帮助我完成了我的工作P

希望这可能会对某人有所帮助。

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

require 'ttfunk'

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

(摘自上述gem的自述)

你在搜索什么?我发现搜索“ruby ttf解析器”没有返回任何有用的结果是不可信的……谢谢djangodude。这些链接有助于理解字体文件的结构。但我找到了另一个可能有点混乱的解决方案:P无论如何,请将其张贴在下面…:)