无法检索字体数据PdfSharp / MigradDoc

时间:2015-05-16 16:47:23

标签: asp.net-mvc azure report pdfsharp migradoc

我有一个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>

我真的不知道该怎么做......我怎么解决这个问题? 谢谢!

**抱歉我的英文:(

1 个答案:

答案 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