繁体   English   中英

在 Azure 中使用 MigraDoc (PdfSharp) 渲染 µ 和 ³ 时出现问题

[英]Problem rendering µ and ³ with MigraDoc (PdfSharp) in Azure

我正在使用 MigraDocCore 渲染 PDF,当我在本地运行我的应用程序时,这些符号会正确渲染:

符号在本地运行时正确呈现

但是当我在 Azure App Service 中运行它时,符号丢失了:

符号在 Azure 中呈现不正确

我的默认样式定义为

Style style = Document.Styles["Normal"];
style.Font.Name = "Arial";
style.Font.Color = Colors.Black;
style.ParagraphFormat.SpaceAfter = Unit.FromMillimeter(5);

为什么这些符号无法在 Azure 中正确呈现,我该如何解决?

- - 编辑:
当我发布这篇文章时,我刚刚注意到其中一个立方米在 Azure 中正确呈现,而其他则没有。

抓取显示一个 ³ 符号在 Azure 中工作,而其他人不

这里的区别在于,不起作用的是硬编码字符串,而起作用的是通过 Localizer。

例如

var tf = section.AddTextFrame();

// This works
var str = L("m³");
var para = tf.AddParagraph(str);

// This doesn't work
var para = tf.AddParagraph("m³");

如果我检查硬编码³的字符代码和本地化版本 json 中的字符代码,它们都是 char 179。

我在这里看到的唯一区别是 json 文件是没有 BOM 的 UTF-8,而 .cs 文件是 ~~UTF-8 和 BOM~~ 西欧。 (这可能会成为问题)。

我已将 .cs 文件保存为没有 BOM 的 UTF-8 并将报告回来......

要解决此问题,需要使用以下步骤:

  1. 从 NuGet 安装 PDFsharp 1.50 beta 2 的WPF 版本

  2. 使用字体解析器将字体select 与 PDFsharp 1.50 beta 2 或 MigraDoc 一起使用私有 fonts

  3. 添加 unicode 字体作为项目中的嵌入资源。

PDFSharp 中类似的字体问题请参考这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM