在 Word 文档中进行页面的添加、插入和删除是管理和展示内容的关键步骤。通过添加或插入新页面,您可以扩展文档以容纳更多内容,使其更有条理和易读性。删除页面则有助于简化文档,去除不必要或错误的信息。这些操作可以提升文档的整体质量和清晰度。本文将介绍如何使用 Spire.Doc for Java 在 Java 项目中添加、插入和删除 Word 文档中的页面。
安装 Spire.Doc for Java
首先,您需要在 Java 程序中添加 Spire.Doc.jar 文件作为依赖项。您可以从此链接下载 JAR 文件;如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>13.4.1</version>
</dependency>
</dependencies>
Java 在 Word 文档中添加页面
在 Word 文档末尾添加新页面的步骤包括定位到最后一个章节,然后在该章节的末尾段落插入分页符。这种方法可以确保后续添加的内容会从新页面开始显示,保持文档结构的清晰和连贯。以下是详细步骤:
- 创建一个 Document 对象。
- 使用 Document.loadFromFile() 方法加载示例 Word 文档。
- 使用 Document.getLastSection().getBody() 获取文档的最后一个节的正文部分。
- 通过调用 Paragraph.appendBreak(BreakType.Page_Break) 方法添加一个分页符。
- 创建一个新的段落样式 ParagraphStyle 对象。
- 使用 Document.getStyles().add(paragraphStyle) 方法将新段落样式添加到文档样式集合中。
- 创建一个新的段落 Paragraph 对象并设置文本内容。
- 使用 Paragraph.applyStyle(paragraphStyle.getName()) 方法应用之前创建的段落样式到新段落。
- 使用 Body.getChildObjects().add(paragraph) 方法添加新段落到文档中。
- 使用 Document.saveToFile() 方法保存结果文档。
- Java
import com.spire.doc.*;
import com.spire.doc.documents.*;
public class AddOnePage {
public static void main(String[] args) {
// 创建一个新的文档对象
Document document = new Document();
// 从文件加载示例文档
document.loadFromFile("示例.docx");
// 获取文档的最后一个章节的正文部分
Body body = document.getLastSection().getBody();
// 在正文最后一个段落后插入分页符
body.getLastParagraph().appendBreak(BreakType.Page_Break);
// 创建一个新的段落样式
ParagraphStyle paragraphStyle = new ParagraphStyle(document);
paragraphStyle.setName("CustomParagraphStyle1");
paragraphStyle.getParagraphFormat().setLineSpacing(12);
paragraphStyle.getParagraphFormat().setAfterSpacing(8);
paragraphStyle.getCharacterFormat().setFontName("微软雅黑");
paragraphStyle.getCharacterFormat().setFontSize(12);
// 将段落样式添加到文档的样式集合中
document.getStyles().add(paragraphStyle);
// 创建新的段落并设置文本内容
Paragraph paragraph = new Paragraph(document);
paragraph.appendText("非常感谢您使用我们的 Spire.Doc for Java 产品。试用版除了会在生成的结果文档中添加红色水印,而且仅支持转换前 10 页到其它格式。当您购买并应用 license 后,会成功移除这些水印信息并解除功能限制。");
// 应用段落样式
paragraph.applyStyle(paragraphStyle.getName());
// 将段落添加到正文的内容集合中
body.getChildObjects().add(paragraph);
// 创建另一个新的段落并设置文本内容
paragraph = new Paragraph(document);
paragraph.appendText("为了更完整的试用我们的产品,我们免费提供一个月临时 license 给我们的每一位客户。请发送邮件到 sales @e-iceblue.com,我们会在一个工作日内将license发送给您。");
// 应用段落样式
paragraph.applyStyle(paragraphStyle.getName());
// 将段落添加到正文的内容集合中
body.getChildObjects().add(paragraph);
// 保存文档到指定路径
document.saveToFile("添加一个页面.docx", FileFormat.Docx);
// 关闭文档
document.close();
// 释放文档对象的资源
document.dispose();
}
}
Java 在 Word 文档中插入页面
在插入新页面之前,需要确定指定页面内容在节中的结束位置索引,然后逐个将新页面的内容添加到文档中。为了确保内容与后续页面分隔开来,需要在适当位置插入分页符。详细步骤如下:
- 创建一个 Document 对象。
- 使用 Document.loadFromFile() 方法加载示例 Word 文档。
- 创建一个FixedLayoutDocument 对象。
- 获取文档中的一个页面的 FixedLayoutPage 对象。
- 获取页面最后一个段落在节中的索引位置。
- 创建一个新的段落样式 ParagraphStyle 对象。
- 使用 Document.getStyles().add(paragraphStyle) 方法将新段落样式添加到文档中。
- 创建一个新的段落 Paragraph 对象并设置文本内容。
- 使用 Paragraph.applyStyle(paragraphStyle.getName()) 方法应用之前创建的段落样式到新段落。
- 使用 Body.getChildObjects().insert(index, Paragraph) 方法在指定位置(当前页最后一个段落之后)插入新段落。
- 创建另一个新的段落对象,设置其文本内容后,通过调用 Paragraph.appendBreak(BreakType.Page_Break) 方法添加一个分页符,然后应用之前创建的段落样式,最后将这个段落插入到文档中。
- 使用 Document.saveToFile() 方法保存结果文档。
- Java
import com.spire.doc.*;
import com.spire.doc.pages.*;
import com.spire.doc.documents.*;
public class InsertOnePage {
public static void main(String[] args) {
// 创建一个新的文档对象
Document document = new Document();
// 从文件加载示例文档
document.loadFromFile("示例.docx");
// 创建固定布局文档对象
FixedLayoutDocument layoutDoc = new FixedLayoutDocument(document);
// 获取第一页
FixedLayoutPage page = layoutDoc.getPages().get(0);
// 获取文档正文部分
Body body = page.getSection().getBody();
// 获取当前页最后一列的段落
Paragraph paragraphEnd = page.getColumns().get(0).getLines().getLast().getParagraph();
// 初始化结束索引
int endIndex = 0;
if (paragraphEnd != null)
{
// 获取最后一个段落的索引
endIndex = body.getChildObjects().indexOf(paragraphEnd);
}
// 创建一个新的段落样式
ParagraphStyle paragraphStyle = new ParagraphStyle(document);
paragraphStyle.setName("CustomParagraphStyle1");
paragraphStyle.getParagraphFormat().setLineSpacing(12);
paragraphStyle.getParagraphFormat().setAfterSpacing(8);
paragraphStyle.getCharacterFormat().setFontName("微软雅黑");
paragraphStyle.getCharacterFormat().setFontSize(12);
// 将样式添加到文档中
document.getStyles().add(paragraphStyle);
// 创建新的段落并设置文本内容
Paragraph paragraph = new Paragraph(document);
paragraph.appendText("非常感谢您使用我们的 Spire.Doc for Java 产品。试用版除了会在生成的结果文档中添加红色水印,而且仅支持转换前 10 页到其它格式。当您购买并应用 license 后,会成功移除这些水印信息并解除功能限制。");
// 应用段落样式
paragraph.applyStyle(paragraphStyle.getName());
// 在指定位置插入段落
body.getChildObjects().insert(endIndex + 1, paragraph);;
// 创建另一个新的段落并设置文本内容
paragraph = new Paragraph(document);
paragraph.appendText("为了更完整的试用我们的产品,我们免费提供一个月临时 license 给我们的每一位客户。请发送邮件到 sales @e-iceblue.com,我们会在一个工作日内将license发送给您。");
// 应用段落样式
paragraph.applyStyle(paragraphStyle.getName());
// 添加分页符
paragraph.appendBreak(BreakType.Page_Break);
// 在指定位置插入段落
body.getChildObjects().insert(endIndex + 2, paragraph);
// 保存文档到指定路径
document.saveToFile("在指定的页面后插入新的一页.docx",FileFormat.Docx);
// 关闭并释放文档对象的资源
document.close();
document.dispose();
}
}
Java 从 Word 文档中删除页面
要删除一个页面的内容,首先需要找到该页面的起始元素和结束元素在文档中的位置索引。接着,通过循环逐个移除这些元素,实现删除整个页面的内容。详细步骤如下:
- 创建一个 Document 对象。
- 使用 Document.loadFromFile() 方法加载示例 Word 文档。
- 创建一个 FixedLayoutDocument 对象。
- 获取文档中的第一个页面 FixedLayoutPage 对象。
- 使用 FixedLayoutPage.getSection() 属性获取页面所在的节。
- 获取页面第一个段落在节中的索引位置。
- 获取页面最后一个段落在节中的索引位置。
- 使用一个 for 循环逐个移除页面的内容。
- 使用 Document.saveToFile() 方法保存结果文档。
- Java
import com.spire.doc.*;
import com.spire.doc.pages.*;
import com.spire.doc.documents.*;
public class RemoveOnePage {
public static void main(String[] args) {
// 创建一个新的文档对象
Document document = new Document();
// 从文件加载示例文档
document.loadFromFile("示例.docx");
// 创建固定布局文档对象
FixedLayoutDocument layoutDoc = new FixedLayoutDocument(document);
// 获取第二页
FixedLayoutPage page = layoutDoc.getPages().get(1);;
// 获取页面的节
Section section = page.getSection();
// 获取第一页第一列的段落
Paragraph paragraphStart = page.getColumns().get(0).getLines().getFirst().getParagraph();
int startIndex = 0;
if (paragraphStart != null)
{
// 获取起始段落的索引
startIndex = section.getBody().getChildObjects().indexOf(paragraphStart);
}
// 获取最后一页最后一列的段落
Paragraph paragraphEnd = page.getColumns().get(0).getLines().getLast().getParagraph();
int endIndex = 0;
if (paragraphEnd != null)
{
// 获取结束段落的索引
endIndex = section.getBody().getChildObjects().indexOf(paragraphEnd);
}
// 删除指定范围内的段落
for (int i = 0; i <= (endIndex - startIndex); i++)
{
section.getBody().getChildObjects().removeAt(startIndex);
}
// 保存文档到指定路径
document.saveToFile("删除一个页面.docx", FileFormat.Docx);
// 关闭并释放文档对象的资源
document.close();
document.dispose();
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。