中心段落文本

时间:2014-07-17 12:24:38

标签: c# openxml openxml-sdk

我为标题创建了一个样式,我想要将该文本居中。

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 中将文本居中,以便它适用于文本。

1 个答案:

答案 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}}