我有一个ASP .NET MVC Web应用程序,我使用PdfSharp / MigraDoc生成报告。当我将应用程序发布到azure并打印报告时,会引发以下异常:
Internal error. Font data could not retrieved.
我有这种方法来定义报告样式,我选择" Arial"字体。
private void DefineStyle(Document document)
{
Style style = document.Styles.AddStyle("Table", "Normal");
style.Font.Name = "Arial";
style.Font.Size = 9;
}
在最后一步中,我渲染PDF调用此方法:
public void RenderAsPdf(Document document, HttpResponseBase response, string title)
{
PdfDocumentRenderer renderer = new PdfDocumentRenderer(true, PdfSharp.Pdf.PdfFontEmbedding.Always);
renderer.Document = document;
renderer.RenderDocument();
MemoryStream stream = new MemoryStream();
renderer.Save(stream, false);
response.Clear();
response.AddHeader("Cache-Control", "no-cache");
response.AddHeader("Pragma", "no-cache");
response.ContentType = "application/pdf";
response.AddHeader("Content-Disposition", "filename=" + title + ".pdf");
response.AddHeader("content-length", stream.Length.ToString());
response.BinaryWrite(stream.ToArray());
response.Flush();
stream.Close();
response.End();
}
在下面的这一点上,引发了异常。
renderer.RenderDocument();
我已经完全信任我的申请并且没有工作。我在web.config中添加了这个配置。
<configuration>
<system.web>
<trust level="Full" />
</system.web>
</configuration>
我真的不知道该怎么做......我怎么解决这个问题? 谢谢!
**抱歉我的英文:(
答案 0 :(得分:4)
确保服务器上安装了Arial字体 - 或使用私有字体(包括项目中的字体)。
API已更改为版本1.50。可在此处找到1.50版的示例:
http://forum.pdfsharp.net/viewtopic.php?p=8961#p8961
可以在完整的源包中找到1.3x版本使用的API示例。另见:
http://pdfsharp.net/wiki/PrivateFonts-sample.ashx