处理段落

段落是一组字符组合成一个逻辑块,并以一个特殊字符–aparagraph break结尾。 在Aspose.Words中,段落由Paragraph类表示。

插入段落

要在文档中插入一个新的段落,实际上,您需要在其中插入一个段落中断字符。 DocumentBuilder.Writeln不仅在文档中插入一串文本,而且还添加一个段落中断。

当前字体格式也由Font属性指定,当前段落格式由ParagraphFormat属性确定。 在下一节中,我们将详细介绍段落格式。

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

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open the document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Font font = builder.getFont();
font.setSize(16);
font.setColor(Color.DARK_GRAY);
font.setBold(true);
font.setName("Algerian");
font.setUnderline(2);
ParagraphFormat paragraphFormat = builder.getParagraphFormat();
paragraphFormat.setFirstLineIndent(12);
paragraphFormat.setAlignment(1);
paragraphFormat.setKeepTogether(true);
builder.write("This is a sample Paragraph");
doc.save(dataDir + "InsertParagraph_out.doc");

格式段落

当前段落格式由ParagraphFormat属性返回的ParagraphFormat对象表示。 此对象封装了Microsoft Word中可用的各种段落格式属性。 您可以通过调用ClearFormatting轻松地将段落的格式重置为默认样式–正常样式、左对齐、无缩进、无间距、无边框、无阴影。

下面的代码示例演示如何设置段落格式:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open the document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
ParagraphFormat paragraphFormat = builder.getParagraphFormat();
paragraphFormat.setAlignment(ParagraphAlignment.CENTER);
paragraphFormat.setLeftIndent(50);
paragraphFormat.setRightIndent(50);
paragraphFormat.setSpaceAfter(25);
paragraphFormat.setKeepTogether(true);
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(dataDir + "SetParagraphFormatting_out.doc");

应用段落样式

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

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

下面的代码示例演示如何应用段落样式:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open the document.
Document doc = new Document();
// Set paragraph style
DocumentBuilder builder = new DocumentBuilder(doc);
builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.TITLE);
builder.write("Hello");
doc.save(dataDir + "ApplyParagraphStyle_out.doc");

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

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

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

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Style paraStyle = builder.getDocument().getStyles().add(StyleType.PARAGRAPH, "MyParaStyle");
paraStyle.getFont().setBold(false);
paraStyle.getFont().setSize(8);
paraStyle.getFont().setName("Arial");
// Append text with "Heading 1" style.
builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
builder.write("Heading 1");
builder.insertStyleSeparator();
// Append text with another style.
builder.getParagraphFormat().setStyleName(paraStyle.getName());
builder.write("This is text with some other formatting ");
dataDir = dataDir + "InsertStyleSeparator_out.doc";
doc.save(dataDir);

对段落应用边框和阴影

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

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

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

着色纹理使用TextureIndex枚举值设置,该值允许将各种模式应用于Shading对象。 例如,要为文档元素设置背景颜色,请使用TextureIndex.TextureSolid值并根据需要设置前景阴影颜色。 下面给出的代码示例演示了如何将边框和阴影应用于段落。

下面的代码示例演示如何将边框和底纹应用于段落:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open the document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Set paragraph borders
BorderCollection borders = builder.getParagraphFormat().getBorders();
borders.setDistanceFromText(20);
borders.getByBorderType(BorderType.LEFT).setLineStyle(LineStyle.DOUBLE);
borders.getByBorderType(BorderType.RIGHT).setLineStyle(LineStyle.DOUBLE);
borders.getByBorderType(BorderType.TOP).setLineStyle(LineStyle.DOUBLE);
borders.getByBorderType(BorderType.BOTTOM).setLineStyle(LineStyle.DOUBLE);
// Set paragraph shading
Shading shading = builder.getParagraphFormat().getShading();
shading.setTexture(TextureIndex.TEXTURE_DIAGONAL_CROSS);
shading.setBackgroundPatternColor(Color.YELLOW);
shading.setForegroundPatternColor(Color.GREEN);
builder.write("I'm a formatted paragraph with double border and nice shading.");
doc.save(dataDir + "ApplyBordersAndShading_out.doc");