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);
我需要在使用 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);