用 Java 创建 Rich Word 文档

近年来,动态生成 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 文档的步骤:

以下代码示例展示了如何创建包含 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文档

使用 Java 创建具有表格的 Word 文档

Word 文档中的表格用于以行和列的形式组织内容。在本节中,我们将创建一个包含两行和两列的简单表。创建表包括四个基本操作:

  • 启动表
  • 插入一个单元格
  • 结束行
  • 结束表

以下是使用 Java 在 Word 文档中创建表格的步骤:

以下示例展示了如何在 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文档

使用 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 docx 中插入列表

使用 Java 在 Word 文档中插入图像

将图像插入 Word 文档非常简单。以下是执行此操作的一些简单步骤:

以下代码示例展示了如何使用 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 docx 中插入图像

结论

在本文中,您学习了如何使用 Java 以编程方式创建丰富的 Word 文档。此外,代码示例还展示了如何将文本、表格、图像和列表添加到 Word 文档中。您可以阅读更多 了解如何使用 Aspose.Words for Java 将各种元素插入 Word 文档。

免费试用 Aspose.Words for Java

您可以获得免费的 临时许可证 来尝试使用 Aspose.Words for Java,而不受试用限制。

也可以看看