我正在使用Microsoft.Reporting.WebForms.LocalReport生成一些PDF,一切都像魅力,但现在邪恶的营销想要使用自定义字体(他们使用如“疯狂的参数”作为“企业形象”和东西)。
我已经瞪眼了,现在我知道了
但它仍然无效。我相信RDLC不支持此功能,是否有人知道是否是这种情况?不幸的是,我无法使用服务器端报告导致我缺少报告服务器。
射线
嵌入字体与Microsoft Reporting 2010或更高版本一起使用时,以下限制仍然适用
您可能会遇到Font嵌入的问题,但您的PDF仍然以Arial显示文本。在我在Windows Server 2008 R2上安装了一些新字体之后发生了这种情况,重新启动AppPool(ASP.NET MVC)并没有解决这个问题,需要重启服务器。
我在Visual Studio 2008上使用Arial Narrow字体做了一个简单的测试,它运行良好。我已经在没有字体的虚拟XP机器上测试了生成的PDF并且它呈现了正常。也许这是字体的问题?
嗯,也许是这个 - 在我的测试中我使用Winforms.LocalReport而不是WebForms。也许这就是诀窍?
我遇到了同样的问题,但我发现字体不需要嵌入。问题出在HTML中的Font Face属性。我们使用的HTML编辑器生成了像这样的Font标签:
<font face="Impact,Charcoal,sans-serif" size="6">Impact </font>
哪个适用于Report Viewer,但要生成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");
如果您执行上述所有操作并且字体未显示在Pdf报告RDLC文件中,
也许你必须重新启动服务器,它确实适合我