处理段落
段落是一组字符组合成一个逻辑块,并以一个特殊字符–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仅指定表格单元格中的对角线边框。
边框集合和每个单独的边框都具有类似的属性,如颜色,线条样式,线条宽度,与文本的距离和可选阴影。 它们由同名属性表示。 您可以通过组合属性值来实现不同的边框类型。 此外,BorderCollection和Border对象都允许您通过调用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"); |