Powershell Windows注册表中的OpenType字体

Powershell Windows注册表中的OpenType字体,powershell,fonts,registry,opentype,Powershell,Fonts,Registry,Opentype,我正在编写PowerShell脚本,以便在Windows中安装TrueType和OpenType字体。 脚本正在计算机\HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts中添加注册表项,并将字体文件复制到C:\Windows\Fonts。 如果我不这样做,只将文件复制到字体目录,Windows会在用户空间中自动安装字体(C:\Users\UserName\AppData\Local\Microsoft

我正在编写PowerShell脚本,以便在Windows中安装TrueType和OpenType字体。 脚本正在计算机\HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts中添加注册表项,并将字体文件复制到C:\Windows\Fonts。 如果我不这样做,只将文件复制到字体目录,Windows会在用户空间中自动安装字体(C:\Users\UserName\AppData\Local\Microsoft\Windows\Fonts)

我可以看到,我的计算机上的一些OpenType字体和Windows安装的字体在注册表中有一个类似“FontName(TrueType)”的字符串名称,即使它们是OpenType字体?? 如果名称是“FontName(OpenType)”,不是更有意义吗


是否有相关标准?

为了在系统中注册和枚举字体,用于条目名称的字符串没有意义。名为“垃圾邮件”的条目与“Arial Regular(TrueType)”或“Arial Regular(OpenType)”的条目一样有效。重要的是这把钥匙的独特性

但是,对于注册表的维护(字体的安装或删除,以及升级或迁移到新系统),操作系统的某些部分希望条目名称具有特定的格式。因此,即使字体可以被视为OpenType字体,也应该使用模板“(TrueType)”作为条目名称

正如其他人在评论中指出的,TrueType与OpenType的区别是模糊的。大多数可能被认为是TrueType字体的字体都符合OpenType字体的要求,但不是全部;特别是,MacOS的一些字体使用苹果的TrueType参考手册中定义的扩展,但OpenType规范中没有。OpenType规范中有几个扩展未包含在苹果的TrueType参考手册中


但就您的目的而言,TT与OT的区别并不相关。始终在注册表中使用“(TrueType)”。

OpenType将取代Microsoft的TrueType开放扩展,改为TrueType格式。OpenType字体可以在通用包装中包含PostScript或TrueType轮廓。请阅读更多关于此的信息,谢谢。是否可以在OTF文件上/中查看所使用的大纲类型?文件上的type属性仅显示“OpenType字体文件”,至少对于我正在尝试的OTF文件是这样。我还没有发现任何内置PS大纲的免费OTF。约定是使用.ttf扩展名来扩展带有TrueType大纲的OpenType,使用.OTF扩展名来扩展带有CFF数据的OpenType,但最终这种区别是完全不相关的,因为重要的是它是一种OpenType字体。字形轮廓使用了哪种风格(TT、CFF、CFF2、SVG,现在有很多选择)是一个实现细节。如果你想要更详细的字体信息,有很多工具可以检查字体文件,免费的和付费的。@技术上的“Teo”,OpenType不支持PASScript,它支持CFF,它使用Type 2字符串,就像PcScript一样,C++是C一样的:最好是受启发。有一个postscript表,但它是一个通用表,与所使用的glyph大纲语言无关。