MigraDox C# 复选框 - Wingdings 不工作

MigraDox C# Checkboxes - Wingdings Not Working

我需要在使用 MigraDoc 库生成的 PDF 中模拟一个复选框。我偶然发现了两个提供基本相同解决方案的来源 (here and here)

但是,我没有得到预期的结果。相反,对于应该选中的框,我得到了 þ,对于那些未选中的框,我得到了 ¨。可能是什么问题?

我的代码片段

     para = section.AddParagraph();
        para.Style = "ListLevelOne";
         para.AddFormattedText("1 ", "Bold");
         para.AddFormattedText(IsQ1Checked ? "\u00fe" : "\u00A8", new Font("Wingdings"));

MigraDoc 不使用字体 "Wingdings",而是使用默认字体(可能是 MS Sans 左右),因此您看到的字符来自标准字体,而不是 Wingdings 符号。

问题出在您在此处显示的代码片段之外的某个地方。确保计算机上安装了 Wingdings 字体。

您可能想要嵌入字体并确保 MigraDoc 使用 unicode 编码而不是 ansi:

private const bool unicode = true;
private const PdfFontEmbedding embedding = PdfFontEmbedding.Always;
//...
var pdfRenderer = new PdfDocumentRenderer(unicode, embedding);

http://www.pdfsharp.net/wiki/migradochelloworld-sample.ashx