我为标题创建了一个样式,我想要将该文本居中。
StyleDefinitionsPart stylePart = mainPart.AddNewPart<StyleDefinitionsPart>();
Style UserHeading = new Style();
RunProperties UserHeadingRunPro = new RunProperties();
Color UserColour = new Color() { Val = "2E74B5" };
RunFonts UserHeadingFont = new RunFonts();
UserHeadingFont.Ascii = "Calibri Light (Headings)";
Justification CenterHeading = new Justification() { Val = JustificationValues.Center } ;
UserHeadingRunPro.Append(CenterHeading);
UserHeadingRunPro.Append(UserColour);
UserHeadingRunPro.Append(UserHeadingFont);
UserHeadingRunPro.Append(new Bold());
UserHeadingRunPro.Append(new FontSize() { Val = "26" });
UserHeading.StyleId = "userheading";
UserHeading.Append(new Name() { Val = "User Heading" });
UserHeading.Append(new BasedOn() { Val = "Heading1" });
UserHeading.Append(new NextParagraphStyle() { Val = "Normal" });
UserHeading.Append(UserHeadingRunPro);
stylePart.Styles = new Styles();
stylePart.Styles.Append(UserHeading, SideHeading);
stylePart.Styles.Save();
我遇到的问题是代码被调用并将样式应用到它应该做的事情,除了证明段落的合理性以使文本居中。
从这里调用样式;
Paragraph NamePar = new Paragraph();
Run heading_run = new Run();
Text heading_text = new Text(UserName);
ParagraphProperties User_heading_pPr = new ParagraphProperties();
User_heading_pPr.ParagraphStyleId = new ParagraphStyleId() { Val = "userheading" };
NamePar.Append(User_heading_pPr);
heading_run.Append(heading_text);
NamePar.Append(heading_run);
我只是想知道如何在样式 userheading 中将文本居中,以便它适用于文本。
答案 0 :(得分:3)
来自ECMA-376:
17.3.1.13 jc(段落一致)该要素规定了应适用于本段案文的段落对齐。 如果在给定段落上省略此元素,则其值为 由先前在样式的任何级别设置的设置确定 层次[...]
这意味着你可以控制对象:
段 级别:
ParagraphProperties User_heading_pPr = new ParagraphProperties();
Justification CenterHeading = new Justification() { Val = JustificationValues.Center } ;
User_heading_pPr.Append(CenterHeading);
User_heading_pPr.ParagraphStyleId = new ParagraphStyleId() { Val = "userheading" };
NamePar.Append(User_heading_pPr);
我知道这不是你想要的。
或 style 级别,您要做的事情。
您的错误是,当Justification
对象必须添加到 runProperties
时,才会将paragraphProperties
对象添加到ParagraphProperties UserHeadingParagPro = new DocumentFormat.OpenXml.Wordprocessing.ParagraphProperties();
Justification CenterHeading = new Justification { Val = JustificationValues.Center };
///UserHeadingRunPro.Append(CenterHeading) => Your mistake
[...]
UserHeadingParagPro.Append(CenterHeading);
UserHeading.Append(UserHeadingParagPro);
。
{{1}}