Преглед На Конструктора На Документи
DocumentBuilder е мощен клас, който се асоциира с Document и ви позволява да създавате динамични документи от нулата или да добавяте нови елементи към съществуващ.
DocumentBuilder
Създател на документи или Aspose.Words DOM
DocumentBuilder
Операциите, които са възможни с DocumentBuilder, са възможни и при директно използване на класовете на Aspose.Words DOM. Въпреки това, използването на Aspose.Words DOM класове директно обикновено изисква повече редове код, отколкото използването на 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.Words API осигурява няколко класа, които са отговорни за форматирането на различни елементи от документ. Всеки от класовете капсулира свойства за форматиране, свързани с конкретен елемент на документа, като например текст, Абзац, раздел и други. Например класът Font представлява свойствата за форматиране на знаци, класът ParagraphFormat представлява свойствата за форматиране на абзаци и т.н. Обектите от тези класове се връщат със съответните DocumentBuilder свойства, които имат същите имена като класовете. Следователно можете да получите достъп до тях и да зададете желаното форматиране по време на изграждането на документа.
Можете също да вмъквате текст, checkbox, стар обект, изображения, отметки, полета на формуляр и други елементи на документа в позицията на курсора, като използвате метода Write
или някой от методите DocumentBuilder.InsertXXX, като InsertField, InsertHtml и подобни методи.
Нека видим как да създадем прост документ, използвайки 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 Задайте свойства за форматиране, които ще бъдат приложени към клетките на таблицата и редовете от текущата позиция в документа нататък.
В тази ситуация “текущ” означава позицията, абзаца, секцията, клетката или реда, в който се намира курсорът.