---
title: "Java中的文档生成器概述"
---


[DocumentBuilder](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/)是一个功能强大的类，它与[Document](https://reference.aspose.com/words/java/com.aspose.words/document/)相关联，使您能够从头开始构建动态文档或向现有文档添加新元素。

**DocumentBuilder**

## 文档生成器或Aspose.WordsDOM

**DocumentBuilder**

当直接使用Aspose.WordsDOM的类时，也可以使用**DocumentBuilder**进行操作。 但是，直接使用Aspose.WordsDOM类通常需要比使用**DocumentBuilder**更多的代码行。

## 文档导航

文档导航基于虚拟光标的概念，您可以使用各种**DocumentBuilder.MoveToXXX**方法（如[MoveToDocumentStart](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#moveToDocumentStart)和[MoveToField](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#moveToField-com.aspose.words.Field-boolean)）将其移动到文档中的另一个位置。 此虚拟光标指示调用方法时文本将插入的位置[Write](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#write-java.lang.String), [Writeln](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#writeln), [InsertBreak](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#insertBreak-int), 和其他人。 请参阅以下文章"使用光标导航"以了解有关虚拟光标的更多信息。

下面的代码示例演示如何导航到书签:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-document-DocumentBuilderMoveToBookmarkEnd-DocumentBuilderMoveToBookmarkEnd.java" >}}

## 文档构建和修改

Aspose.WordsAPI提供了几个类，它们负责格式化文档的各种元素。 每个类都封装了与特定文档元素（如文本、段落、节等）相关的格式属性。 例如，[Font](https://reference.aspose.com/words/java/com.aspose.words/font/)类表示字符格式设置属性，[ParagraphFormat](https://reference.aspose.com/words/java/com.aspose.words/paragraphformat/)类表示段落格式设置属性，等等。 这些类的对象由相应的**DocumentBuilder**属性返回，这些属性与类具有相同的名称。 因此，您可以在文档构建期间访问它们并设置所需的格式。

您还可以使用`Write`方法或任何**DocumentBuilder.InsertXXX**方法（如[InsertField](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#insertField-int-boolean)、[InsertHtml](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#insertHtml-java.lang.String)和类似方法）在光标位置插入文本、checkbox、ole对象、图像、书签、表单字段和其他文档元素。

让我们看看如何使用**DocumentBuilder**创建一个简单的文档。

### 使用DocumentBuilder创建文档

首先，您需要创建一个**DocumentBuilder**并将其与**Document**对象相关联。 您可以通过调用其构造函数来创建**DocumentBuilder**的新实例，并将其传递给**Document**对象以附加到构建器。

要插入文本，请将需要插入到文档中的文本字符串传递给**Write**方法。

下面的代码示例演示如何使用文档生成器创建简单文档。

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-quickstart-HelloWorld-CreateNewDocument.java" >}}

### 指定文档格式

[Font](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#getFont)属性定义文本格式。 此对象包含不同的字体属性（字体名称、字体大小、颜色等）。 一些重要的字体属性也由**DocumentBuilder**属性表示，以允许您直接访问它们。 这些是[Font.Bold](https://reference.aspose.com/words/java/com.aspose.words/font/#getBold)、[Font.Italic](https://reference.aspose.com/words/java/com.aspose.words/font/#getItalic)和[Font.Underline](https://reference.aspose.com/words/java/com.aspose.words/font/#getUnderline)布尔属性。

下面的代码示例演示如何使用**DocumentBuilder**插入格式化文本:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-document-WorkingWithParagraphs-DocumentBuilderInsertParagraph.java" >}}

{{% alert color="primary" %}}

- [Font](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#getFont)指定将应用于从文档当前位置开始插入的所有文本的字符格式。
- [ParagraphFormat](https://reference.aspose.com/words/java/com.aspose.words/paragraphformat/)指定要插入的当前段落和所有段落的段落格式。
- [PageSetup](https://reference.aspose.com/words/java/com.aspose.words/pagesetup/)指定当前节和将插入的整个节的页和节属性。
- [CellFormat](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#getCellFormat)和[RowFormat](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#getRowFormat)指定将从文档中的当前位置开始应用于表格单元格和行的格式属性。

在这种情况下，"当前"表示光标所在的位置，段落，部分，单元格或行。

{{% /alert %}}

{{% alert color="primary" %}}

请注意，只要导航到文档中的其他位置，**Font**、**ParagraphFormat**和**PageSetup**属性就会更新，以反映此位置的格式属性。

{{% /alert %}}
