我在运行Azure App Service的C#WebAPI中与Stimulsoft合作。当我将报告导出为PDF时,所有文本都呈现为正方形,如此
导出为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);
任何人都可以帮助我吗?
答案 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 access(confirmed by another MS employee too)到GDI +子系统设备字体呈现所需的上下文。
如果您尝试操纵字体或其参数,也可能会发生General GDI+ error
。
建议的解决方案