OpenXML ComplexScript 字体不呈现

OpenXML ComplexScript font not rendering

我有以下生成示例 word 文档的程序:

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;

namespace OpenXmlExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string filePath = @"C:\Users\[Redacted]\Desktop\OpenXmlExample.docx";

            using (WordprocessingDocument document = WordprocessingDocument.Create(filePath, WordprocessingDocumentType.Document))
            {
                // Create main part and body of document
                MainDocumentPart mainPart = document.AddMainDocumentPart();
                mainPart.Document = new Document();
                Body body = mainPart.Document.AppendChild(new Body());

                // Prototype code for generation of the document title
                Paragraph paragraph = new Paragraph();
                ParagraphProperties pPr = new ParagraphProperties
                {
                    Justification = new Justification { Val = JustificationValues.Center }
                };

                RunProperties rPr = new RunProperties
                {
                    RunFonts = new RunFonts { ComplexScript = new StringValue("Arial") },
                    Bold = new Bold { Val = true },
                    Caps = new Caps { Val = true },
                    FontSize = new FontSize { Val = "32" },
                    FontSizeComplexScript = new FontSizeComplexScript { Val = "36" }
                };

                Text t = new Text("Example Document");

                Run r = new Run();

                r.Append((OpenXmlElement) rPr.Clone());
                r.Append(t);

                pPr.Append((OpenXmlElement) rPr.Clone());
                paragraph.Append(pPr);
                paragraph.Append(r);
                body.Append(paragraph);
            }
        }
    }
}

它似乎运行良好。 "EXAMPLE DOCUMENT" 呈现正确,粗体和大写,16pt 字体。但是,ComplexScript = new StringValue("Arial") 部分似乎不起作用。文本只是以默认字体呈现。如果我做错了什么,谁能帮助我理解?如果我将 Ascii 属性 设置为 Arial 似乎可行,但我希望它生成为 <w:rFonts w:cs="Arial"/> 标记。

对于单个运行,可以配置4种不同的字体。
每种字体的使用应由 运行 内容的 Unicode 字符值决定。

ASCII 用于 Unicode 范围 (U+0000-U+007F) 中的字符。
复杂脚本 用于复杂脚本 Unicode 范围内的字符,例如。阿拉伯文字。
东亚 用于东亚 Unicode 范围内的字符,例如。日语.
高 ANSI 用于不属于其他类别之一的 Unicode 范围内的字符。

'EXAMPLE DOCUMENT'中的字符都属于 ASCII 组,因此将应用相应组的字体。

更多详情请见 MSDN and Office Open XML