C# Stimulsoft仅导出带有正方形的pdf

C# Stimulsoft仅导出带有正方形的pdf,c#,azure,pdf,report,stimulsoft,C#,Azure,Pdf,Report,Stimulsoft,我正在使用在Azure应用程序服务上运行的C#WebAPI中的Stimulsoft。当我将报告导出为PDF时,所有文本都呈现为正方形,如下所示 var settings = new StiPdfExportSettings() { ImageQuality = 1.0f, ImageResolution = 300, EmbeddedFonts = false, UseUnicode = false, StandardPdfFonts = true }; 当导出为HTML时,报告是正确的。本

我正在使用在Azure应用程序服务上运行的C#WebAPI中的Stimulsoft。当我将报告导出为PDF时,所有文本都呈现为正方形,如下所示

var settings = new StiPdfExportSettings() { ImageQuality = 1.0f, ImageResolution = 300, EmbeddedFonts = false, UseUnicode = false, StandardPdfFonts = true };

当导出为HTML时,报告是正确的。本地或Azure中的虚拟机如果pdf文件正确,则问题仅发生在Azure应用程序服务上

这是我用来导出pdf的代码。我使用的字体是Arial,有些部分有粗体或斜体

var settings = new StiPdfExportSettings() { ImageQuality = 1.0f, ImageResolution = 300, EmbeddedFonts = true, StandardPdfFonts = true };

                report.ExportDocument(StiExportFormat.Pdf, ms, settings);

有人能帮我吗?

我已经解决了将pdf设置更改为这样导出的问题

var settings = new StiPdfExportSettings() { ImageQuality = 1.0f, ImageResolution = 300, EmbeddedFonts = false, UseUnicode = false, StandardPdfFonts = true };

这仅适用于StandardPdfonts=true和EmbeddedFonts=false,仅UseUnicode=false不起作用

字体问题是由Azure网站服务的限制引起的:它只能访问有限的字体集,不能()访问字体呈现所需的GDI+子系统设备上下文

如果您试图操作字体或其参数,也可能会出现
General GDI+错误

建议的解决办法如下:

  • 使用
  • 将您的网站托管在

PDF导出需要访问报表中使用的字体文件。Stimulsoft报告引擎使用GDI+访问有关字体的必要信息

Azure网站对访问GDI+有限制

唯一的出路是使用

或者,您可以准备必要的字体,以便在本地计算机上导出PDF。在这种情况下,您不需要访问GDI+函数

工作原理:

  • 使用创建字体文件(*.fiz)

  • 在应用程序的init部分,将这些文件加载到字体存储

示例代码:

Stimulsoft.Report.Export.FontsInfoStore.LoadFontInfoToStore("Arial", @"fontstore\Arial.fiz");