【问题标题】:Why is font not available in ASP.NET code?为什么字体在 ASP.NET 代码中不可用?
【发布时间】:2019-02-22 14:21:18
【问题描述】:

我有一个 ASP.NET 站点,可以在其中为用户生成 ID 卡。我使用 Bitmap 对象并调用 Graphics.DrawString 在图像上写入各种文本位。我已经使用各种字体做了很长一段时间了,没有任何大惊小怪。

一位客户现在要求我在他们的卡片上使用 Roboto 字体。我从 Google 下载了它并将其安装在我的系统上 - 它出现在控制面板中并且可用于其他应用程序。但是,我的卡片生成器无法访问它 - 它默认为 Microsoft Sans Serif。我用foreach (FontFamily family in FontFamily.Families)看有没有上榜,没有上榜。我在 WinForms 应用程序中尝试了相同的操作,字体 包含在列表中。

那么,我的问题是,为什么我不能从 ASP.NET 进程中访问此字体? ASP.NET 和 WinForms 对字体的支持方式有什么不同吗?

【问题讨论】:

    标签: c# asp.net fonts


    【解决方案1】:

    因为 asp.net 在特定池下运行,并且该池以不同用户身份登录 - 可能尚未安装该字体。

    因此请检查您的池在哪个用户下运行,并为该用户安装该字体。

    【讨论】:

    • 我不确定如何为其他用户安装字体,尤其是无法登录的应用程序池用户。我尝试修改字体的安全设置以允许应用程序池用户,但确实如此没有帮助。过去我对其他字体也做过同样的事情,它们可以正常工作,除了重新启动 IIS 之外不需要做任何事情,因此进程可以识别它们。
    • @Ray,也许您将它们安装为快捷方式,也许您将它们放置在没有正确权限的字体目录中,也许它只是没有为其他用户注册 - 在 Windows 10 上,如果您右键单击字体文件询问您是否愿意“为所有用户安装它”。您可以使用您创建的池用户,您可以使用该帐户登录以仔细检查字体
    • 我以前从未使用过“为所有用户安装”,也从未遇到过问题。无论如何我都试过了——我删除了字体并重新安装了。没有运气 - 同样的问题。在字体文件的安全设置中,“用户”组被授予读取和执行权限。
    • @Ray 其他原因 -> 也许你使用了一些带有字体没有编码的字符串
    • 六个月后,我也遇到了同样的问题,用谷歌搜索,找到我的老问题,尝试@Aristos 建议的解决方案——它奏效了。所以,回答接受 -thanx。
    猜你喜欢
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 2010-09-23
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    相关资源
    最近更新 更多