[英]Problem rendering µ and ³ with MigraDoc (PdfSharp) in Azure
我正在使用 MigraDocCore 渲染 PDF,当我在本地运行我的应用程序时,这些符号会正确渲染:
但是当我在 Azure App Service 中运行它时,符号丢失了:
我的默认样式定义为
Style style = Document.Styles["Normal"];
style.Font.Name = "Arial";
style.Font.Color = Colors.Black;
style.ParagraphFormat.SpaceAfter = Unit.FromMillimeter(5);
为什么这些符号无法在 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 并将报告回来......
要解决此问题,需要使用以下步骤:
从 NuGet 安装 PDFsharp 1.50 beta 2 的WPF 版本
使用字体解析器将字体select 与 PDFsharp 1.50 beta 2 或 MigraDoc 一起使用私有 fonts
添加 unicode 字体作为项目中的嵌入资源。
PDFSharp 中类似的字体问题请参考这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.