*为了澄清,我说的只是更改文件名,而不是存储在字体中的实际名称.如果可能的话,我也可以使用任何兼容语言或脚本工作流程的脚本,例如: this post引用通过osascript在Apple脚本中嵌入AppleScript.
StackExchange帖子我咨询过:
How to get Fontname from OTF or TTF File?
How to get PostScript name of TTF font in OS X?
How to Change Name of Font?
Automate Renaming Files in macOS
其他:
https://github.com/dtinth/JXA-Cookbook/wiki/Using-JavaScript-for-Automation
https://github.com/fonttools/fonttools
https://github.com/devongovett/fontkit
https://www.npmjs.com/package/rename-js
https://opentype.js.org/font-inspector.html
http://www.fontgeek.net/blog/?p=343
https://www.lantean.co/osx-renaming-fonts-for-free
编辑:按要求添加以下内容.
1)一个典型的webfont的屏幕截图,说明了字体系列和样式名称的表单字段通常是不完整,空白还是包含非法字符.
2)描绘的woff文件(也作为base64).
谢谢大家!
我不知道你的工作流程是什么,所以我会留下任何偏差给你,但这里有一个方法来选择一个字体文件,并从服务,根据Apple的元数据,特别是“com_apple_ats_name_postscript”将文件重命名为字体的postscript名称… .这是使用字体文件中终端的“mdls”检索的数据之一.要关注postscript名称,请grep name_postscript的输出.为简单起见,我将排除所选文件的路径.
字体名称Aquisition
所以……运行这个命令……
mdls GenBkBasBI.ttf | grep -A1 name_postscript
…生成此输出,其中包含FontBook的Postscript名称. grep中的’A1’返回找到的行和后面的第一行,它是包含实际字体名称的行.
com_apple_ats_name_postscript = ( "GentiumBookBasic-BoldItalic"
用更多的bash(tr,tail)清理它…
tr -d \ | tail -n 1 | tr -d \"
按顺序,这些剥离空间,除了最后一行之外的所有行和引号.因此对于第一个’tr’实例,反斜杠后有一个额外的空格.
在一行中,它看起来像这样……
mdls GenBkBasBI.ttf | grep -A1 name_postscript | tr -d \ | tail -n 1 | tr -d \"
……并生产这个……
GentiumBookBasic-BoldItalic
现在,这是包含上述bash命令的工作流.我从这个问题的答案中得到了可变用法的想法……
Apple Automator “New PDF from Images” maintaining same filename
Automator工作流程
Automator Workflow screenshot
在顶部;服务在“Finder”中接收选定的“文件或文件夹”.
>获取选定的Finder项目
这个(或Get Specified …)允许测试.使用它作为服务可以避免这种情况.
>设置变量值(文件)
这是为了记住要重命名的文件
>运行Shell脚本
这是我们使用bash的地方. $f是选定/指定的文件.无论出于什么原因,我都在运行’zsh’.您可以将其设置为您正在运行的任何内容,可能是“bash”.
>设置变量值(文本)
将bash输出分配给变量.这将由新文件名的最后一个操作使用.
>获取变量值(文件)
调用要重命名的指定/选定文件.
>重命名Finder项目:名称单项
我将它设置为“仅限Basename”,因此它将单独保留扩展名.在此处输入操作4中的“文本”变量.