在使用 MigraDoc 生成的 PDF 中无法显示圆加号 (⊕)
Trouble displaying Circle plus (⊕) in PDF generated using MigraDoc
生成PDF时,不显示⊕符号,而是显示替换符号。是否可以通过某种方式解决此问题?
测试的版本:
- 1.32
- 1.5 测试版 3
测试的字体:
- 宋体
- 绿色
- Lucida 控制台
- 安慰剂
代码
string fileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".pdf");
var doc = new Document();
doc.Styles["Normal"].Font.Name = "Consolas";
doc.AddSection().AddParagraph("A ⊕ B");
var pdfRenderer = new PdfDocumentRenderer(true);
pdfRenderer.Document = doc;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save(fileName);
Process.Start(fileName);
尝试替换
doc.AddSection().AddParagraph("A ⊕ B");
与:
doc.AddSection().AddParagraph("A \u2295 B");
使用包含字符 "Circled Plus" 的字体。
您可以使用例如"Segoe UI Symbol"。 "Segoe UI" 不包含该字符。
MS Word 在使用此类符号时会自动切换字体,使用 MigraDoc 时,您必须根据需要切换字体。
如果您想对其余文本使用 "Consolas",请对 Circled Plus 使用 AddFormattedText
并切换到例如"Segoe UI Symbol" 对于这个符号。
生成PDF时,不显示⊕符号,而是显示替换符号。是否可以通过某种方式解决此问题?
测试的版本:
- 1.32
- 1.5 测试版 3
测试的字体:
- 宋体
- 绿色
- Lucida 控制台
- 安慰剂
代码
string fileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".pdf");
var doc = new Document();
doc.Styles["Normal"].Font.Name = "Consolas";
doc.AddSection().AddParagraph("A ⊕ B");
var pdfRenderer = new PdfDocumentRenderer(true);
pdfRenderer.Document = doc;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save(fileName);
Process.Start(fileName);
尝试替换
doc.AddSection().AddParagraph("A ⊕ B");
与:
doc.AddSection().AddParagraph("A \u2295 B");
使用包含字符 "Circled Plus" 的字体。
您可以使用例如"Segoe UI Symbol"。 "Segoe UI" 不包含该字符。
MS Word 在使用此类符号时会自动切换字体,使用 MigraDoc 时,您必须根据需要切换字体。
如果您想对其余文本使用 "Consolas",请对 Circled Plus 使用 AddFormattedText
并切换到例如"Segoe UI Symbol" 对于这个符号。