为了账号安全,请及时绑定邮箱和手机立即绑定

OpenXML ComplexScript 字体未呈现

OpenXML ComplexScript 字体未呈现

C#
繁星coding 2021-08-29 17:57:43
我有以下程序可以生成一个示例 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"/>标签。
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

对于单次运行,可以配置 4 种不同的字体。
这些字体中的每一种的使用应由运行内容的 Unicode 字符值确定。

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

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

MSDN和Office Open XML 中的更多详细信息。


查看完整回答
反对 回复 2021-08-29
  • 1 回答
  • 0 关注
  • 174 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信