gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 15:00:23 24 4
gpt4 key购买 nike

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

 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" };

但是在输出文件中看不到任何变化。

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

Changing text direction in word file

如何解决这个问题?

提前致谢。

最佳答案

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

using (WordprocessingDocument doc =
WordprocessingDocument.Open(@"test.docx", true))
{
Paragraph p = doc.MainDocumentPart.Document.Body.ChildElements.First<Paragraph>();

if(p == null)
{
Console.Out.WriteLine("Paragraph not found.");
return;
}

ParagraphProperties pp = p.ChildElements.First<ParagraphProperties>();

if (pp == null)
{
pp = new ParagraphProperties();
p.InsertBefore(pp, p.First());
}

BiDi bidi = new BiDi();
pp.Append(bidi);

}

Microsoft Word 中的双向文本还有几个方面。SanjayKumarM 写了一篇关于如何从右到左文本内容的文章在 Microsoft Word 中处理。参见 this链接以获取更多信息。

关于c# - 在 C# 中通过 OpenXML 在 word 文件中定义具有 RTL 方向的段落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15461035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com