Stimulsoft只用正方形输出pdf

时间:2016-04-05 13:34:38

标签: c# azure pdf report stimulsoft

我在运行Azure App Service的C#WebAPI中与Stimulsoft合作。当我将报告导出为PDF时,所有文本都呈现为正方形,如此

enter image description here

导出为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);

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:3)

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

Azure网站限制访问GDI +。

唯一的出路是使用Standard PDF fonts

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

工作原理:

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

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

示例代码:

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

答案 1 :(得分:1)

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

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

这只适用于StandardPdfFonts = true和EmbeddedFonts = false,只有UseUnicode = false不起作用

答案 2 :(得分:-1)

字体问题是由Azure网站服务的限制引起的:它只能访问有限的字体集,而不是providing accessconfirmed by another MS employee too)到GDI +子系统设备字体呈现所需的上下文。

如果您尝试操纵字体或其参数,也可能会发生General GDI+ error

建议的解决方案