OpenXML ComplexScript 字体未呈现

我有以下程序可以生成一个示例 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);

            }

        }

    }

}

它似乎工作得很好。“示例文档”正确呈现,粗体和大写,16pt 字体。但是,该ComplexScript = new StringValue("Arial")部分似乎不起作用。文本仅以默认字体呈现。任何人都可以帮助我了解我是否做错了什么?如果我将该Ascii属性设置为 Arial,它似乎可以工作,但我希望将其生成为<w:rFonts w:cs="Arial"/>标签。


繁星coding
浏览 175回答 1
1回答

HUH函数

对于单次运行,可以配置 4 种不同的字体。这些字体中的每一种的使用应由运行内容的 Unicode 字符值确定。Unicode 范围内的字符的ASCII&nbsp;(U+0000-U+007F)。复杂脚本的复杂的脚本Unicode的范围,例如字符。阿拉伯文。东亚用于东亚 Unicode 范围内的字符,例如。日本人。Unicode 范围内不属于其他类别之一的字符的高 ANSI。'EXAMPLE DOCUMENT' 中的字符都属于 ASCII 组,因此将应用相应组的字体。MSDN和Office Open XML 中的更多详细信息。
打开App,查看更多内容
随时随地看视频慕课网APP