[英]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.