簡體   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