OpenXML中的StyleParagraphProperties类用于定义段落样式的格式属性,例如对齐、缩进和间距等,它与ParagraphProperties类的主要区别在于作用范围,前者用于样式定义,而后者用于具体段落。

1)KeepNext属性:用于设置当前段落与其下一个段落保持在同一页,其效果等同于word文档中段落设置的换行和分页选项卡下的与下段同页复选框,类型为KeepNext,布尔值类型。
2)KeepLines属性:用于设置段落的所有行都保持在同一页,其效果等同于word文档中段落设置的换行和分页选项卡下的段中不分页复选框,类型为KeepLines,布尔值类型。
3)PageBreakBefore属性:用于设置段落前启用分页,其效果等同于word文档中段落设置的换行和分页选项卡下的段前分页复选框,类型为PageBreakBefore,布尔值类型。
4)WidowControl属性:用于设置段落排版时的孤行控制,其效果等同于word文档中段落设置的换行和分页选项卡下的孤行控制复选框,类型为WidowControl,布尔值类型。当段落的最后一行单独出现在下一页的顶部,或第一行单独留在上一页的底部时,WidowControl能自动调整段落的分页。
5)NumberingProperties属性:用于设置段落与编号/项目符号的关联,类型为NumberingProperties,其主要属性包括NumberingId和NumberingLevelReference,前者设置段落与文档NumberingPart中定义的特定列表的关联关系,后者设置对应列表中的哪一级(例如0表示第一级),使用示例如下:
csharp
StyleParagraphProperties paragraphProperties = new StyleParagraphProperties();
NumberingProperties numberingProps = new NumberingProperties();
numberingProps.NumberingId = new NumberingId() { Val = 1 }; // 引用ID为1的列表
numberingProps.NumberingLevelReference = new NumberingLevelReference() { Val = 2 }; // 使用第3级编号
paragraphProperties.Append(numberingProps);
6)SuppressLineNumbers属性:用于设置段落是否显示行号,其效果等同于word文档中段落设置的换行和分页选项卡下的取消行号复选框,类型为SuppressLineNumbers,布尔值类型。
7)ParagraphBorders属性:用于设置段落的边框样式,类型为ParagraphBorders,主要属性包括TopBorder、LeftBorder、BottomBorder、RightBorder、BetweenBorder、BarBorder,这些属性的类型都继承自BorderType,该类型的主要属性如下表所示:BorderValues
| 序号 | 名称 | 说明 |
|---|---|---|
| 1 | Val | 边框样式,从枚举值BorderValues内取值 |
| 2 | Color | 边框颜色 ,采用RGB字符串赋值,例如"000000"表示黑色 |
| 3 | Size | 边框的宽度 |
| 4 | Space | 边框与内容之间的间距 |
| 5 | Shadow | 是否显示阴影效果 |
8)Shading属性:用于设置段落的背景填充效果,类型为Shading,取值为ShadingPatternValues型,其效果示例如下所示。

9)Tabs属性:用于管理段落的制表符设置,该属性不直接包含制表符数据,而是作为一系列TabStop(制表位)定义的容器。TabStop类用于定义单个制表位的位置和属性,对应着 Word 文档中通过标尺或对话框设置的制表位,其主要属性如下:
| 序号 | 名称 | 说明 |
|---|---|---|
| 1 | Val | 设置制表位的对齐方式,从枚举值TabStopValues内取值 |
| 2 | Leader | 设置制表位前导符的样式 ,从枚举值TabStopLeaderCharValues内取值 |
| 3 | Position | 设置制表位的具体位置 |
10)SuppressAutoHyphens属性:用于设置段落的自动断字功能,其效果等同于word文档中段落设置的换行和分页选项卡下的取消断字复选框,类型为SuppressAutoHyphens,布尔值类型。
11)WordWrap属性:用于设置段落是否允许西文文字在文字中间换行,其效果等同于word文档中段落设置的中文版式选项卡下的允许西文在单词中间换行复选框,类型为WordWrap,布尔值类型。
12)OverflowPunctuation属性:用于设置段落是否允许标点溢出,其效果等同于word文档中段落设置的中文版式选项卡下的允许标点溢出边界复选框,类型为OverflowPunctuation,布尔值类型。
13)TopLinePunctuation属性:用于设置段落是否允许标点挤压,其效果等同于word文档中段落设置的中文版式选项卡下的允许行首标点压缩复选框,类型为TopLinePunctuation,布尔值类型。
14)AutoSpaceDE属性:用于设置段落是否允许自动调整中文和西文的间距,其效果等同于word文档中段落设置的中文版式选项卡下的自动调整中文和西文的间距复选框,类型为AutoSpaceDE,布尔值类型。
15)AutoSpaceDN属性:用于设置段落是否允许自动调整中文和数字的间距,其效果等同于word文档中段落设置的中文版式选项卡下的自动调整中文和数字的间距复选框,类型为AutoSpaceDN,布尔值类型。
16)AdjustRightIndent属性:用于设置段落是否允许自动调整右缩进,其效果等同于word文档中段落设置的缩进和间距选项卡下的"如果定义了文档网格,则自动调整右缩进"复选框,类型为AdjustRightIndent,布尔值类型。
17)SnapToGrid属性:用于设置段落是否对齐到网格,其效果等同于word文档中段落设置的缩进和间距选项卡下的"如果定义了文档网格,则对齐到网格"复选框,类型为SnapToGrid,布尔值类型。
18)SpacingBetweenLines属性:用于设置段落前后间距和行距,其效果等同于word文档中段落设置的缩进和间距选项卡下的间距设置,类型为SpacingBetweenLines,其主要属性如下:
| 序号 | 名称 | 说明 |
|---|---|---|
| 1 | Before | 设置段前间距,以1/20磅为单位 |
| 2 | BeforeLines | 设置段前间距,以行为单位,值为百分比数值 |
| 3 | BeforeAutoSpacing | 自动调整段前间距,布尔值类型 |
| 4 | After | 设置段后间距,以1/20磅为单位 |
| 5 | AfterLines | 设置段后间距,以行为单位,值为百分比数值 |
| 6 | AfterAutoSpacing | 自动调整段后间距,布尔值类型 |
| 7 | LineRule | 设置行距规则,从枚举值LineSpacingRuleValues内取值 |
| 8 | Line | 设置行距,值以行高倍数表示,如 "240" = 1倍行高,"480" = 2倍行高 |
19)Indentation属性:用于设置段落的缩进,其效果等同于word文档中段落设置的缩进和间距选项卡下的缩进设置,类型为Indentation,其主要属性如下:
| 序号 | 名称 | 说明 |
|---|---|---|
| 1 | Left | 设置段落左侧缩进距离,以缇(1/20磅)为单位 |
| 2 | LeftChars | 设置段落左侧缩进距离,以字符数为单位,值为百分比数值 |
| 3 | start | 设置段落开始处的缩进距离,同left,该属性仅在office2010及以上版本中支持 |
| 4 | StartCharacters | 设置段落开始处的缩进距离,同LeftChars ,该属性仅在office2010及以上版本中支持 |
| 5 | Right | 设置段落右侧缩进距离,以缇(1/20磅)为单位 |
| 6 | RightChars | 设置段落右侧缩进距离,以字符数为单位,值为百分比数值 |
| 7 | End | 设置段落结尾处的缩进距离,同Right ,该属性仅在office2010及以上版本中支持 |
| 8 | EndCharacters | 设置段落结尾处的缩进距离,同RightChars,该属性仅在office2010及以上版本中支持 |
| 9 | Hanging | 设置段落悬挂缩进距离,以缇(1/20磅)为单位 |
| 10 | HangingChars | 设置段落悬挂缩进距离,以字符数为单位,值为百分比数值 |
| 11 | FirstLine | 设置段落首行缩进距离,以缇(1/20磅)为单位 |
| 12 | FirstLineChars | 设置段落首行缩进距离,以字符数为单位,值为百分比数值 |
20)ContextualSpacing属性:用于设置是否在相同样式的段落间增加间距,类型为ContextualSpacing,布尔值类型。
21)MirrorIndents属性:用于设置是否在对开页上交换缩进,类型为MirrorIndents,布尔值类型。
22)Justification属性:用于设置段落的对齐方式,其效果等同于word文档中段落设置的缩进和间距选项卡下的对齐方式设置,类型为Justification,从枚举值JustificationValues取值。
23)TextDirection属性:用于设置段落中文本的排列方向,类型为TextDirection,从枚举值TextDirectionValues取值。
24)TextAlignment属性:用于设置段落的文本对齐方式,其效果等同于word文档中段落设置的中文版式选项卡下的文本对齐方式设置,类型为TextAlignment,从枚举值VerticalTextAlignmentValues取值。
25)TextBoxTightWrap属性:用于设置文本环绕文本框的方式,其效果等同于word文档中段落设置的换行和分页选项卡下的紧密环绕方式设置,类型为TextBoxTightWrap,从枚举值TextBoxTightWrapValues取值。
26)OutlineLevel属性:用于设置段落的大纲级别,类型为OutlineLevel,数值类型。
参考文献
1\]https://github.com/dotnet/Open-XML-SDK \[2\]https://learn.microsoft.com/zh-cn/office/open-xml/open-xml-sdk \[3\]https://learn.microsoft.com/zh-cn/dotnet/api/documentformat.openxml.wordprocessing.style?view=openxml-3.0.1 \[4\]https://blog.csdn.net/i042416/article/details/126228816