为 OpenXML 中的非英文字符设置 RunFonts

Set RunFonts for non-English characters in OpenXML

考虑以下代码片段。当我将此文本打印到 word 文档时,我所有的“åäö”字符都使用默认字体“Calibri (Body)”,而其余文本使用我选择的字体“Century”。为什么让 OpenXml 一般接受任何非英语字符或特定语言的字符是最好的方法?

//Creation of Documents and a paragraph to work with

var runFontCentury = new RunFonts { Ascii = "Century" };
var size12 = new FontSize { Val = new StringValue("24") };
Run run = new Run() 
run.AppendChild(new Text("non-english åäö"));

//Appending to paragraph and printing out as a word document

这是 this 问题的重复。

解决办法就是添加更多的字符集。大多数(如果不是全部)欧洲字符都可以在 HighAnsi 字符集中找到。我还添加了一套以备不时之需。

解决方法:

var runFontCentury = new RunFonts { Ascii = "Century", HighAnsi = "Century", ComplexScript = "Century", };