使用段落

段落是组合成逻辑块的一组字符,并以特殊字符(段落分隔符)结尾。在 Aspose.Words 中,段落由 Paragraph 类表示。

插入一个段落

实际上,要在文档中插入新段落,您需要在其中插入分段符。 DocumentBuilder.writeln 还会在文档中插入文本字符串,但此外,它还会添加段落分隔符。

当前字体格式也由 font 属性指定,当前段落格式由 paragraph_format 属性确定。

以下代码示例演示如何将段落插入到文档中:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
font = builder.font
font.size = 16
font.bold = True
font.color = drawing.Color.blue
font.name = "Arial"
font.underline = aw.Underline.DASH
paragraphFormat = builder.paragraph_format
paragraphFormat.first_line_indent = 8
paragraphFormat.alignment = aw.ParagraphAlignment.JUSTIFY
paragraphFormat.keep_together = True
builder.writeln("A whole paragraph.")
doc.save(docs_base.artifacts_dir + "AddContentUsingDocumentBuilder.insert_paragraph.docx")

设置段落格式

当前段落格式由 paragraph_format 属性返回的 ParagraphFormat 对象表示。该对象封装了 Microsoft Word 中可用的各种段落格式属性。您可以通过调用 clear_formatting 轻松地将段落格式重置为默认为普通样式、左对齐、无缩进、无间距、无边框和无底纹。

以下代码示例展示了如何设置段落格式:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
paragraphFormat = builder.paragraph_format
paragraphFormat.alignment = aw.ParagraphAlignment.CENTER
paragraphFormat.left_indent = 50
paragraphFormat.right_indent = 50
paragraphFormat.space_after = 25
builder.writeln(
"I'm a very nice formatted paragraph. I'm intended to demonstrate how the left and right indents affect word wrapping.")
builder.writeln(
"I'm another nice formatted paragraph. I'm intended to demonstrate how the space after paragraph looks like.")
doc.save(docs_base.artifacts_dir + "DocumentFormatting.paragraph_formatting.docx")

应用段落样式

某些格式化对象(例如 FontParagraphFormat)支持样式。单个内置或用户定义的样式由 Style 对象表示,该对象包含相应的样式属性,如样式的名称、基本样式、字体和段落格式等。

此外,Style 对象提供 Style.style_identifier 属性,该属性返回由 StyleIdentifier 枚举值表示的独立于语言环境的样式标识符。要点是 Microsoft Word 中内置样式的名称针对不同语言进行了本地化。使用样式标识符,无论文档语言如何,您都可以找到正确的样式。枚举值对应于 Microsoft Word 内置样式,例如 Normal 、 Heading 1 、 Heading 2 等。所有用户定义的样式都分配有 StyleIdentifier.USER 值。

以下代码示例展示了如何应用段落样式:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.paragraph_format.style_identifier = aw.StyleIdentifier.TITLE
builder.write("Hello")
doc.save(docs_base.artifacts_dir + "DocumentFormatting.apply_paragraph_style.docx")

插入样式分隔符以放置不同的段落样式

可以使用 MS Word 中的 Ctrl + Alt + Enter 键盘快捷键将样式分隔符添加到段落末尾。此功能允许在一个逻辑打印段落中使用两种不同的段落样式。如果您希望特定标题开头的某些文本出现在目录中,但不希望整个标题出现在目录中,则可以使用此功能。

以下代码示例演示如何插入样式分隔符以适应不同的段落样式:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
paraStyle = builder.document.styles.add(aw.StyleType.PARAGRAPH, "MyParaStyle")
paraStyle.font.bold = False
paraStyle.font.size = 8
paraStyle.font.name = "Arial"
# Append text with "Heading 1" style.
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1
builder.write("Heading 1")
builder.insert_style_separator()
# Append text with another style.
builder.paragraph_format.style_name = paraStyle.name
builder.write("This is text with some other formatting ")
doc.save(docs_base.artifacts_dir + "WorkingWithStylesAndThemes.insert_style_separator.docx")

识别段落样式分隔符

Aspose.Words 在 Paragraph 类中提供了一个公共属性 break_is_style_separator,允许识别样式分隔符段落,如下例所示:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Document.docx")
for paragraph in doc.get_child_nodes(aw.NodeType.PARAGRAPH, True) :
paragraph = paragraph.as_paragraph()
if (paragraph.break_is_style_separator) :
print("Separator Found!")

将边框和底纹应用到段落

边界由 BorderCollection 表示。这是通过索引或边框类型访问的 Border 对象的集合。边框类型由 BorderType 枚举表示。枚举的某些值适用于多个或仅一个文档元素。例如,BorderType.BOTTOM 适用于段落或表格单元格,而 BorderType.DIAGONALDOWN 仅指定表格单元格中的对角边框。

边框集合和每个单独的边框都具有相似的属性,例如颜色、线条样式、线条宽度、距文本的距离和可选的阴影。它们由同名的属性表示。您可以通过组合属性值来实现不同的边框类型。此外,BorderCollectionBorder 对象都允许您通过调用 Border.clear_formatting 方法将这些值重置为默认值。

Aspose.Words 还具有 Shading 类,其中包含文档元素的底纹属性。您可以设置所需的着色纹理以及应用于元素的背景和前景的颜色。

着色纹理使用 TextureIndex 枚举值进行设置,该枚举值允许将各种图案应用到 Shading 对象。例如,要设置文档元素的背景颜色,请使用 TextureIndex.TEXTURE_SOLID 值并根据需要设置前景色。下面的示例展示了如何将边框和底纹应用于段落。

以下代码示例演示如何将边框和底纹应用到段落:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
borders = builder.paragraph_format.borders
borders.distance_from_text = 20
borders.get_by_border_type(aw.BorderType.LEFT).line_style = aw.LineStyle.DOUBLE
borders.get_by_border_type(aw.BorderType.RIGHT).line_style = aw.LineStyle.DOUBLE
borders.get_by_border_type(aw.BorderType.TOP).line_style = aw.LineStyle.DOUBLE
borders.get_by_border_type(aw.BorderType.BOTTOM).line_style = aw.LineStyle.DOUBLE
shading = builder.paragraph_format.shading
shading.texture = aw.TextureIndex.TEXTURE_DIAGONAL_CROSS
shading.background_pattern_color = drawing.Color.light_coral
shading.foreground_pattern_color = drawing.Color.light_salmon
builder.write("I'm a formatted paragraph with double border and nice shading.")
doc.save(docs_base.artifacts_dir + "DocumentFormatting.apply_borders_and_shading_to_paragraph.doc")