在C#中通过OpenXML在word文件中定义带有RTL方向的段落

如何使用C#中的OpenXML为单词中的段落设置从右到左的方向? 我使用下面的代码来定义它,但它们不会做任何改变:

RunProperties rPr = new RunProperties(); Style style = new Style(); style.StyleId = "my_style"; style.Append(new Justification() { Val = JustificationValues.Right }); style.Append(new TextDirection() { Val = TextDirectionValues.TopToBottomRightToLeft }); style.Append(rPr); 

最后我将为我的段落设置这种风格:

 ... heading_pPr.ParagraphStyleId = new ParagraphStyleId() { Val = "my_style" }; 

但是看到输出文件没有变化。

我找到了一些post,但他们根本没有帮助我,比如:

更改word文件中的文本方向

怎么能解决这个问题?

提前致谢。

使用BiDi类将段落的文本方向设置为RTL。 以下代码示例搜索word文档中的第一个段落,并使用BiDi类将文本方向设置为RTL:

 using (WordprocessingDocument doc = WordprocessingDocument.Open(@"test.docx", true)) { Paragraph p = doc.MainDocumentPart.Document.Body.ChildElements.First(); if(p == null) { Console.Out.WriteLine("Paragraph not found."); return; } ParagraphProperties pp = p.ChildElements.First(); if (pp == null) { pp = new ParagraphProperties(); p.InsertBefore(pp, p.First()); } BiDi bidi = new BiDi(); pp.Append(bidi); } 

Microsoft Word中的双向文本还有一些方面。 SanjayKumarM写了一篇关于如何在Microsoft Word中处理从右到左文本内容的文章。 有关更多信息,请参阅此链接。