近年来,动态生成 Word 文档已成为撰写报告、报价单、发票和其他类型文档的流行功能。各种制造公司根据存储在数据库中的数据生成发票。在这种情况下,文档自动化可以节省手动文档创建过程所需的时间、精力和资源。本文旨在针对文档自动化过程,让您了解如何在 Java 中以编程方式创建 Word 文档。
用于创建 Word 文档的 Java API
在本文中,我们将使用 Aspose.Words for Java,它是一个功能丰富的 API,用于在基于 Java 的应用程序中创建、编辑或转换 Word 文档。您可以下载 API 的 JAR 或使用以下 Maven 配置安装它:
存储库:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
依赖:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>20.2</version>
<classifier>jdk17</classifier>
</dependency>
在以下部分中,您将学习如何使用 Java 以编程方式创建包含不同元素(如文本、段落、表格、列表、图像等)的 Word 文档。
使用 Java 创建 Word 文档
大多数时候,Word 文档中有相当一部分内容是基于文本的。因此,我们将从创建带有标题和段落的 Word 文档开始我们的旅程。以下是创建 Word 文档的步骤:
- 首先,创建一个 Document 类的实例。
- 创建一个 DocumentBuilder 对象并使用 Document 对象对其进行初始化。
- 使用 Font 类并设置字体大小、系列等。
- 使用 ParagraphFormat 类设置段落的属性。
- 使用 DocumentBuilder.write() 方法将文本写入文档。
- 最后,调用 Document.save() 方法创建文档。
以下代码示例展示了如何创建包含 Java 文本的 Word 文档。
// 创建一个文档对象
Document doc = new Document();
// 创建一个 DocumentBuilder 对象
DocumentBuilder builder = new DocumentBuilder(doc);
// 指定字体格式
Font font = builder.getFont();
font.setSize(18);
font.setBold(true);
font.setColor(Color.BLACK);
font.setName("Arial");
builder.write("How to Create a Rich Word Document?");
builder.insertBreak(BreakType.LINE_BREAK);
// 开始段落
font.setSize(12);
font.setBold(false);
ParagraphFormat paragraphFormat = builder.getParagraphFormat();
paragraphFormat.setFirstLineIndent(12);
paragraphFormat.setKeepTogether(true);
builder.write("This article shows how to create a Word document containing text, images and lists.");
// 保存文档
doc.save("Rich Word Document.docx");
输出
使用 Java 创建具有表格的 Word 文档
Word 文档中的表格用于以行和列的形式组织内容。在本节中,我们将创建一个包含两行和两列的简单表。创建表包括四个基本操作:
- 启动表
- 插入一个单元格
- 结束行
- 结束表
以下是使用 Java 在 Word 文档中创建表格的步骤:
- 首先,创建 Document 和 DocumentBuilder 类的对象。
- 使用 Table 类创建表。
- 使用 DocumentBuilder.insertCell() 方法插入一个单元格。
- 根据您的要求设置表的属性。
- 使用 DocumentBuilder.write() 方法向单元格添加文本。
- 分别使用 DocumentBuilder.endRow() 和 DocumentBuilder.endTable() 方法结束行和表。
- 最后,保存文档。
以下示例展示了如何在 Word 文档中创建表格。
// 创建一个文档对象
Document doc = new Document();
// 创建一个 DocumentBuilder 对象
DocumentBuilder builder = new DocumentBuilder(doc);
// 创建表
Table table = builder.startTable();
// 插入一个单元格
builder.insertCell();
table.autoFit(AutoFitBehavior.AUTO_FIT_TO_WINDOW);
builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);
builder.write("This is Row 1 Cell 1");
builder.insertCell();
builder.write("This is Row 1 Cell 2");
// 结束行
builder.endRow();
// 开始下一行并设置其属性
builder.getRowFormat().setHeight(100);
builder.getRowFormat().setHeightRule(HeightRule.EXACTLY);
builder.insertCell();
builder.write("This is Row 2 Cell 1");
builder.insertCell();
builder.write("This is Row 2 Cell 2");
builder.endRow();
// 茶几
builder.endTable();
// 保存文档
doc.save("Rich Word Document.docx");
输出
使用 Java 在 Word 文档中创建列表
以下是将列表添加到 Word 文档的步骤。
- 首先,创建一个 Document 类的对象。
- 使用 Document.getLists().add() 方法将所需类型的列表添加到文档中。
- 将文档中的列表获取到 List 对象中。
- 使用 DocumentBuilder 对象填充列表。
- 最后,保存文档。
以下代码示例展示了如何使用 Java 在 Word 文档中创建列表。
// 创建一个文档对象
Document doc = new Document();
doc.getLists().add(ListTemplate.BULLET_CIRCLE);
List list = doc.getLists().get(0);
// 设置为 true 以指定必须在每个部分重新启动列表。
list.isRestartAtEachSection(true);
DocumentBuilder builder = new DocumentBuilder(doc);
builder.getListFormat().setList(list);
for (int i = 1; i < 45; i++) {
builder.writeln(String.format("List Item " + i));
// 插入分节符。
if (i == 15)
builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);
}
builder.getListFormat().removeNumbers();
// 保存文档
doc.save("Rich Word Document.docx");
输出
使用 Java 在 Word 文档中插入图像
将图像插入 Word 文档非常简单。以下是执行此操作的一些简单步骤:
- 首先,创建一个 Document 类的对象。
- 创建 DocumentBuilder 类的对象并使用 Document 对象对其进行初始化。
- 使用 DocumentBuilder.insertImage() 方法插入图像。
- 最后,保存文档。
以下代码示例展示了如何使用 Java 将图像插入 Word 文档。
// 创建一个文档对象
Document doc = new Document();
// 创建 DocumentBuiler
DocumentBuilder builder = new DocumentBuilder(doc);
// 插入图片
builder.insertImage("aspose-words.png");
// 保存文档
doc.save("Rich Word Document.docx");
输出
结论
在本文中,您学习了如何使用 Java 以编程方式创建丰富的 Word 文档。此外,代码示例还展示了如何将文本、表格、图像和列表添加到 Word 文档中。您可以阅读更多 了解如何使用 Aspose.Words for Java 将各种元素插入 Word 文档。
免费试用 Aspose.Words for Java
您可以获得免费的 临时许可证 来尝试使用 Aspose.Words for Java,而不受试用限制。