如何更改字体元数据(特别是标题)?

27

我需要一种动态更改字体名称的方法,但是在.NET中我找不到这样的方法。我不关心字体文件类型,所以otf,fon,ttf都可以。

我尝试过的方法:

  1. 使用dsofile.dll / OleDocument属性阅读器。 这些属性与访问字体名称的内容不同。
  2. 直接在注册表中更改名称。

我已经阅读过.fon文件只是伪装成dll的(一个例子),因此也许那是一个解决方案?


1
这不仅在.NET中不受支持,在Windows中也是如此。很难猜测为什么字体的标题很重要,它只需要一个,并且由字体设计师选择。但是您需要使用字体编辑器创建和注册新的.ttf或.otf(仅限WPF)。对于受版权保护的字体来说是不合法的,大多数都是。 - Hans Passant
1
请注意,根据SIL开放字体许可证,如果您创建了衍生作品(包括创建用作Web字体的字体子集),则必须在字体文件内更改其名称。目前用于创建Web字体版本的工具似乎缺乏更改字体文件中字体名称的能力。 - thomasrutter
5个回答

49
  • 在在线Glyphrstudio字体编辑器中导入您的字体文件
  • 点击左上角的汉堡图标
  • 选择字体设置,并从那里更改标题和元数据

希望能对您有所帮助。


9
优秀的在线工具。 - Luca Fagioli
可能是最好的选择,但仍然希望有更快的方法。你创建了Glyphr Studio网站吗? - oldboy
@oldboy 不是。我在网上找到了它。 - M. Junaid Salaat
3
我已经在另外两个关于如何修改字体的问题中分享了你的答案。在我看来,这是最好的解决方案,因为为了完成某件事而不得不下载软件会显得很繁琐和麻烦。请注意,我的翻译保留原意并尽可能地通俗易懂。 - Steven
1
将一个二进制字体文件导入到Glyphrstudio中会强制进行字体的逆向工程。专业的字体编辑器对此已经有了问题,我的测试显示所有的OpenType特性都丢失了,包括字距调整。 该网站还指出,字距调整只能保存为SVG字体。 所以作为专业建议,我会说不要使用Glyphrstudio。 Fonttools是一个免费的命令行替代方案,可以在不破坏字体的情况下返回给你字体。 - ddaanniiieeelll
将二进制字体文件导入Glyphrstudio会强制其进行反向工程处理。专业的字体编辑器已经有了这个问题,我的测试表明所有OpenType功能都丢失了,包括字距调整。该网站还指出,字距调整仅保存为svg字体。 因此,作为专业建议,我会说不要使用Glyphrstudio。 Fonttools是一个免费的命令行替代方案,并可以在不破坏字体的情况下将其返回。 - ddaanniiieeelll

17

为了更改字体名称,您需要使用真正的字体编辑器打开该字体并将其重命名,然后重新导出到所需格式。

安装FontForge,然后您可以从计算机中打开字体,并在"元素"菜单下使用"字体信息"来更改字体元数据,包括字体名称和字族。


3
在FontForge中如何更改字体文件的元数据? - oldboy

3
最好使用字体制作工作流程中指定的工具。当在编辑器中打开二进制字体文件时,编辑器会尝试逆向工程字体,但几乎从来不起作用。大多数情况下,您将失去许多OT布局功能(字形替换、标记定位,有时甚至是字距调整)。新生成的字体文件将能够使用,但会失去很多功能。
作为字体工程师,我每天都使用这些工具来处理二进制字体文件而不破坏它们:
DTL OTMaster 相当豪华的付费应用程序,可让您访问和编辑字体中的所有表格。不错的地方是:您可以并排比较/编辑多个文件。

https://www.fontmaster.nl/otmaster.html

TTX是fonttools的一部分,是一种便宜(免费)的替代品。TTX可以将二进制字体的所有(或特定的)表转储为可读取的XML文件,这些文件可以在文本编辑器中进行编辑。单个表格可以合并回原始字体,整个字体TTX转储则会转换成全新的二进制字体文件。
它很便宜(免费),需要更多的工作量,但是当与shell和python构建脚本结合使用时,可以非常有趣地批量编辑更多的字体文件。

https://github.com/fonttools/fonttools

然而,在所有情况下,您都应该知道自己在做什么。编辑错误的内容,或者没有编辑字体中的所有内容可能会使它们无法使用。使用 OT 规范检查字体中哪个表格存储了哪些信息。

https://learn.microsoft.com/en-us/typography/opentype/spec/

此外,这可能是最重要的事情:如果您被允许更改您拥有的字体中的任何内容,请检查您的许可证。设计和制作字体是一项繁琐而耗时的工作,如果您拥有适当的许可证并需要定制您的字体版本,请与设计师或供应商联系,通常他们会很乐意提供帮助 :)

3

fontname.py 可以在命令行上重命名字体,它依赖于 fonttools

Git 仓库: https://github.com/chrissimpkins/fontname.py

fonttools 可以通过 pip 安装: pip3 install fonttools

重命名字体标题的示例(新标题将为:Nerd Symbols 2048):

python fontname.py 'Nerd Symbols 2048' 'Symbols-2048-em Nerd Font Complete.ttf'


0

FontForge -- 一款轮廓字体编辑器,可让您创建自己的PostScript、TrueType、OpenType、CID键控、多主、CFF、SVG和位图(BDF、FON、NFNT)字体,或编辑现有字体。还可以将一个格式转换为另一个格式。FontForge支持许多Macintosh字体格式。

sourchttps://superuser.com/questions/120593/how-do-you-change-a-ttf-font-name


虽然此链接可能回答了问题,但最好在此处包含答案的必要部分并提供参考链接。如果链接的页面更改,仅链接的答案可能会失效。-【来自审核】 - Grzegorz Smulko

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