如何使用 bash 从 ttf 字体获取字形宽度?

How to get a glyph width from a ttf font using bash?

如何使用bash从字体文件中提取这个数字1139?

otfinfo 可以显示字形列表。

otfinfo --glyphs *.ttf

我想获取有关每个字形的信息,类似于此页面:

http://bluejamesbond.github.io/CharacterMap/

但是 bash.

我发现fontforge可以做到,

Get glyph widths by fontforge script

我认为你可以使用 ImageMagick 获得你想要的东西,它安装在大多数 Linux 发行版上并且适用于 macOS 和 Windows。

基本上,您需要从命令行告诉 ImageMagick 创建包含单词 "Test" 的图像,并要求它在执行此操作时在其调试输出中告诉您字体规格:

所以,这是 Anthony Thyssen 出色的例子 "ImageMagick Usage Pages" here

convert -debug annotate  xc: -font "/Library/Fonts/Verdana Bold Italic.ttf" -annotate 0 "Test" null: 
2018-07-10T09:36:53+01:00 0:00.010 0.000u 7.0.7 Annotate convert[7893]: annotate.c/RenderFreetype/1545/Annotate
  Font /Library/Fonts/Verdana Bold Italic.ttf; font-encoding none; text-encoding none; pointsize 12
2018-07-10T09:36:53+01:00 0:00.010 0.000u 7.0.7 Annotate convert[7893]: annotate.c/GetTypeMetrics/931/Annotate
  Metrics: text: Test; width: 28; height: 15; ascent: 13; descent: -3; max advance: 21; bounds: 0.6875,-0.046875  5.96875,9; origin: 28,0; pixels per em: 12,12; underline position: -3.8125; underline thickness: 3.29688
2018-07-10T09:36:53+01:00 0:00.010 0.000u 7.0.7 Annotate convert[7893]: annotate.c/RenderFreetype/1545/Annotate
  Font /Library/Fonts/Verdana Bold Italic.ttf; font-encoding none; text-encoding none; pointsize 12

希望您能看到 Anthony 图表中详细说明的各种参数的所有值: