【问题标题】:Stimulsoft Pdf Report dynamic unicode stringsStimulsoft Pdf 报告动态 unicode 字符串
【发布时间】:2018-04-16 21:59:23
【问题描述】:

我有一个波斯语的报告文件,我使用下面的代码生成它:

StiReport report = new StiReport();
        var stream = new MemoryStream();
        var setting = new StiPdfExportSettings
        {
            ImageQuality = 1.0f,
            ImageResolution = 300,
            EmbeddedFonts = false,
            UseUnicode = true,
            StandardPdfFonts = true
        };
        report.Load(Server.MapPath(reportUrl));
        report.RegData("factorReport", model);
        report.RegData("factorReport_userBillDetails", model.UserBillDetail);
        report.Render();
        report.ExportDocument(StiExportFormat.Pdf, stream, setting);
        byte[] bytesInStream = stream.ToArray();
        stream.Close();
        Response.Clear();
        Response.ContentType = "application/force-download";
        Response.AddHeader("content-disposition", "attachment;    filename=Factor" + model.factorId + ".pdf");
        Response.BinaryWrite(bytesInStream);
        Response.End();
        return View();

在开发机器上生成报告没有问题

但是当您看到 发布到生产服务器时,动态部分会出现问题,起初我认为问题可能出在字体上,但正如您在图片中看到的那样,所有标签都使用相同的字体,但只有动态部分是正方形。之后我把它改成 Tahoma 字体,这是一种通用字体,支持波斯语,突然正方形变成了问号!!!!!

我已经创建了 fiz 文件并加载到 Stimulsoft 的字体信息表中,任何帮助将不胜感激:)

【问题讨论】:

  • 你的开发机器是IIS Express?你的生产服务器的设置是什么? Response 也有设置编码的属性吗?如果是,请尝试将其设置为 UTF-8 或类似的。
  • 是的,开发使用 express 运行,生产运行在完整版本的 IIS 之上,但是关于响应编码,两者都使用相同的代码,所以如果一个需要编码,另一个必须需要它,并且分开从那个编码部分不完全不正确
  • 开发机和服务器可以包含不同版本的字体文件,所以请尽量设置(1) EmbeddedFonts=true, UseUnicode=true, 或(2) EmbeddedFonts=false, UseUnicode=false, StandardPdfFonts=假

标签: c# pdf unicode report stimulsoft


【解决方案1】:

现在回答这个问题已经晚了,但以后可能会为谁找到这个问题。

问题在于使用非标准波斯字体,Mitra、Nazanin、Yekan 等字体不标准,在我们混合波斯和拉丁字符的情况下,或者有时在使用数字时,会在 PDF 导出中显示正方形。

要解决这个问题,请使用伊朗SANS等波斯标准字体。

【讨论】:

    猜你喜欢
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多