文档生成器概述
DocumentBuilder是一个功能强大的类,它与Document相关联,使您能够从头开始构建动态文档或向现有文档添加新元素。
DocumentBuilder
文档生成器或Aspose.WordsDOM
DocumentBuilder
当直接使用Aspose.WordsDOM的类时,也可以使用DocumentBuilder进行操作。 但是,直接使用Aspose.WordsDOM类通常需要比使用DocumentBuilder更多的代码行。
文档导航
文档导航基于虚拟光标的概念,您可以使用各种DocumentBuilder.MoveToXXX方法(如MoveToDocumentStart和MoveToField)将其移动到文档中的另一个位置。 此虚拟光标指示调用方法时文本将插入的位置Write, Writeln, InsertBreak, 和其他人。
下面的代码示例演示如何导航到书签:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"DocumentBuilder.doc"); | |
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc); | |
builder->MoveToBookmark(u"CoolBookmark", false, true); | |
builder->Writeln(u"This is a very cool bookmark."); |
文档构建和修改
Aspose.WordsAPI提供了几个类,它们负责格式化文档的各种元素。 每个类都封装了与特定文档元素(如文本、段落、节等)相关的格式属性。 例如,Font类表示字符格式设置属性,ParagraphFormat类表示段落格式设置属性,等等。 这些类的对象由相应的DocumentBuilder属性返回,这些属性与类具有相同的名称。 因此,您可以在文档构建期间访问它们并设置所需的格式。
您还可以使用Write
方法或任何DocumentBuilder.InsertXXX方法(如InsertField、InsertHtml和类似方法)在光标位置插入文本、复选框、ole对象、图像、书签、表单字段和其他文档元素。
让我们看看如何使用DocumentBuilder创建一个简单的文档。
使用DocumentBuilder创建文档
首先,您需要创建一个DocumentBuilder并将其与Document对象相关联。 您可以通过调用其构造函数来创建DocumentBuilder的新实例,并将其传递给Document对象以附加到构建器。
要插入文本,请将需要插入到文档中的文本字符串传递给Write方法。
下面的代码示例演示如何使用文档生成器创建简单文档。
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// Create a blank document. | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(); | |
// DocumentBuilder provides members to easily add content to a document. | |
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc); | |
// Write a new paragraph in the document with the text "Hello World!" | |
builder->Writeln(u"Hello World!"); |
指定文档格式
Font属性定义文本格式。 此对象包含不同的字体属性(字体名称、字体大小、颜色等)。 一些重要的字体属性也由DocumentBuilder属性表示,以允许您直接访问它们。 这些是Font.Bold、Font.Italic和Font.Underline布尔属性。
下面的代码示例演示如何使用DocumentBuilder插入格式化文本:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// The path to the documents directory. | |
System::String outputDataDir = GetOutputDataDir_WorkingWithDocument(); | |
// Initialize document. | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(); | |
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc); | |
// Specify font formatting | |
System::SharedPtr<Font> font = builder->get_Font(); | |
font->set_Size(16); | |
font->set_Bold(true); | |
font->set_Color(System::Drawing::Color::get_Blue()); | |
font->set_Name(u"Arial"); | |
font->set_Underline(Underline::Dash); | |
// Specify paragraph formatting | |
System::SharedPtr<ParagraphFormat> paragraphFormat = builder->get_ParagraphFormat(); | |
paragraphFormat->set_FirstLineIndent(8); | |
paragraphFormat->set_Alignment(ParagraphAlignment::Justify); | |
paragraphFormat->set_KeepTogether(true); | |
builder->Writeln(u"A whole paragraph."); | |
System::String outputPath = outputDataDir + u"DocumentBuilderInsertParagraph.doc"; | |
doc->Save(outputPath); |
- Font指定将应用于从文档当前位置开始插入的所有文本的字符格式。
- ParagraphFormat指定要插入的当前段落和所有段落的段落格式。
- PageSetup指定当前节和将插入的整个节的页和节属性。
- CellFormat和RowFormat指定将从文档中的当前位置开始应用于表格单元格和行的格式属性。
在这种情况下,“当前"表示光标所在的位置,段落,部分,单元格或行。