如何确定已安装字体的操作系统文件名?
我们使用第三方 PDF 生成器库,该库要求您在使用默认 PDF 标准中的 14 种左右字体以外的字体时指定 TrueType 或 Type1 文件名。
因此,如果我想使用 Bitstream Arrus Bold
,我必须知道引用 arrusb.ttf
。
除了枚举字体文件夹中的所有文件并创建一次性 PrivateFontCollection 来提取关系之外,有没有办法从字体信息中获取底层字体名称,即给定 Courier New、Bold、Italic 派生 CourBI.ttf ?
我已经查看了InstalledFontCollection,但什么也没有。
We use a third-party PDF Generator library which requires that you specify the TrueType or Type1 file name when using a font other than the 14 or so that are part of the default PDF standard.
So if I want to use Bitstream Arrus Bold
I have to know to reference arrusb.ttf
.
Short of enumerating all of the files in the font folder and creating a disposable PrivateFontCollection to extract the relationships, is there a way to obtain the underlying font name from font information, i.e. given Courier New, Bold, Italic derive CourBI.ttf
?
I've already looked at the InstalledFontCollection and there's nothing.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您不介意在注册表中查看,请看一下
它有像
这样的对您可以执行必要的查询,如下所示:
对
GetFontFile("Arial (TrueType)")
的调用返回"arial.ttf"
您当然可以修改代码以将
(TrueType)
部分附加到fontName
,或者查看返回的所有内容通过fontsKey.GetValueNames()
找到最佳匹配。If you don't mind poking around in the registry, take a look at
It has pairs like
You can do this the necessary queries like this:
A call to
GetFontFile("Arial (TrueType)")
returns"arial.ttf"
You could of course modify the code to append the
(TrueType)
portion to thefontName
, or to look through everything returned byfontsKey.GetValueNames()
to find the best match.