8

我正在使用 Microsoft.Reporting.WebForms.LocalReport 生成一些 PDF,一切都像魅力一样,但现在邪恶的营销想要使用自定义字体(他们正在使用诸如“企业身份”之类的疯狂论点)。

我已经环顾四周了,现在我知道了

  • 我需要 ReportViewer 2008 SP1 或更高版本
  • 字体必须标记为允许嵌入
  • 字体必须是 TrueType

但它仍然不起作用。我相信 RDLC 不支持此功能,有人知道是否是这种情况吗?不幸的是,我无法使用服务器端报告,因为我缺少报告服务器。

蒂亚

4

5 回答 5

6

嵌入字体适用于 Microsoft Reporting 2010 或更高版本,以下限制仍然适用

  • 字体必须标记为允许嵌入
  • 字体必须是 TrueType 类型

您可能会遇到字体被嵌入但 PDF 仍以 Arial 显示文本的问题。这发生在我在 Windows Server 2008 R2 上安装了一些新字体后,重新启动 AppPool (ASP.NET MVC) 并没有解决这个问题,需要重新启动服务器。

于 2012-08-03T07:55:55.113 回答
0

我在 Visual Studio 2008 中使用 Arial Narrow 字体做了一个简单的测试,效果很好。我已经在没有字体的虚拟 XP 机器上测试了生成的 PDF,并且渲染正常。可能是字体的问题?

嗯,也许是这个——在我的测试中,我使用了 Winforms.LocalReport 而不是 WebForms。也许这就是诀窍?

于 2010-07-08T15:52:38.393 回答
0

我遇到了同样的问题,但我发现不需要嵌入字体。问题在于 HTML 中的 Font Face 属性。我们使用的 HTML 编辑器生成 Font 标签,如下所示:

<font face="Impact,Charcoal,sans-serif" size="6">Impact </font>

这对于报告查看器来说很好,但要生成 PDF 文件,它需要如下所示:

<font face="Impact" size="6">Impact </font>

所以我添加了代码来替换绑定到报告之前的属性值:

htmlValue = htmlValue.Replace("Impact,Charcoal,sans-serif", "Impact")
               .Replace("Arial,Helvetica,sans-serif", "Arial")
               .Replace("Georgia,serif", "Georgia")
               .Replace("Verdana,Geneva,sans-serif", "Verdana")
               .Replace("'Courier New',Courier,monospace", "Courier New")
               .Replace("'Lucida Console',Monaco,monospace", "Lucida Console")
               .Replace("Tahoma,Geneva,sans-serif", "Tahoma")
               .Replace("'Times New Roman',Times,serif", "Times New Roman")
               .Replace("'Trebuchet MS',Helvetica,sans-serif", "Trebuchet MS");
于 2015-04-29T16:10:00.043 回答
0
  • 字体必须标记为允许嵌入
  • 字体必须是 TrueType 类型
  • 将您的字体添加到 Windows 服务器字体

如果您执行上述所有操作并且字体未显示在 Pdf 报告 RDLC 文件中,

也许你必须重新启动服务器,它对我有用

于 2019-03-02T11:48:14.247 回答
0

为了补充 marc.d 的出色答案,我可以确认在我的情况下我还必须完全重新启动服务器。我还要补充一点,检查字体是否可嵌入的方法是执行我在下面描述的两种方法之一。

方法1)如果您的字体已经安装

在 Windows 资源管理器中浏览到 C:\Windows\Fonts\,找到您感兴趣的字体。请注意,同一家族中的字体将被组合在一起,因此您需要双击一个组才能导航到单独的字体文件。在资源管理器窗口底部的属性列表中,您将看到“可嵌入性”: 在此处输入图像描述

方法 2) 如果您在其他位置有 TTF 文件

使用 Windows 资源管理器,打开文件属性并切换到详细信息选项卡: 在此处输入图像描述

您可能会看到的字体可能值为:

  • 无嵌入 - 字体供应商不允许嵌入。这些字体非常罕见。
  • 打印和预览 - 字体供应商允许嵌入,但文档被锁定且无法编辑。大多数第三方字体都有此设置。
  • 可编辑——字体供应商允许将字体嵌入到文档中,并允许使用嵌入的字体编辑文档
  • 可安装 - 这是最宽松的设置。字体供应商允许将字体嵌入文档中,并允许文档查看应用程序将字体永久安装在用户的计算机上。大多数应用程序将这些字体视为设置为可编辑嵌入的字体。

来源:https ://www.microsoft.com/en-us/microsoft-365/blog/2015/07/06/document-font-embedding-demystified/

于 2020-03-28T02:53:12.463 回答