如何使用Open XML C#将段落居中对齐

3

我正在尝试将一个段落居中对齐,但是它并没有对该段落产生任何影响。我正在使用OpenXml。以下是代码:

//paragraph properties 
ParagraphProperties User_heading_pPr = new ParagraphProperties();

//trying to align center a paragraph
Justification justification1 = new Justification() { Val = JustificationValues.Center };

// build paragraph piece by piece
Text text = new Text(DateTime.Now.ToString() + " , ");
Text text1 = new Text(gjenerimi + " , ");
Text text2 = new Text(merreshifren());
var run = new Run();
run.Append(text,text1,text2);
Paragraph newParagraph = new Paragraph(run);
User_heading_pPr.Append(justification1);
newParagraph.Append(User_heading_pPr);

这是我尝试将段落居中对齐的方法。

1个回答

7

将分配文本和段落属性的顺序反转:

User_heading_pPr.Append(justification1);
Paragraph newParagraph = new Paragraph(User_heading_pPr);
newParagraph.Append(run);

在有效和格式良好的Word Open XML中,段落属性必须在运行之前。因此,您必须以相同的方式构建Open XML文档。
这与我们通常处理对象模型的方式有些不同 - 顺序确实很重要!

我按照你下面的建议尝试了,但是row:newParagraph.Append(run); 报错了:错误:无法插入OpenXmlElement“newChild”,因为它是树的一部分。 - Arbenita Musliu
newParagraph.RemoveAllChildren(); 这行代码解决了上述错误。 - Arbenita Musliu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接