Използване `DocumentBuilder` Промяна на документ

Определяне на форматиране

Форматиране на шрифта

Текущото форматиране на шрифта е представено от a Font обект върнат от DocumentBuilder.Font собственост. На Font Класът съдържа голямо разнообразие от свойства на шрифта, възможни в Microsoft Word.

font-formatting-aspose-words-java
Следният пример с код показва как да зададете форматиране на шрифта.

Форматиране на клетка

Форматирането на клетките се използва при изграждането на таблица. Тя е представена от CellFormat обект върнат от DocumentBuilder.CellFormat собственост. CellFormat капсулира различни свойства таблица клетки като ширина или вертикално подравняване.

cell-formatting-aspose-words-java
Следният пример за код показва как да се създаде таблица, която съдържа единична форматирана клетка.

Форматиране на ред

Форматирането на текущия ред се определя от a RowFormat обект, който се връща от DocumentBuilder.RowFormat собственост. Обектът капсулира информация за всички форматиране таблица ред.

row-formatting-aspose-words-java
Да.low code пример показва как да се създаде таблица, която съдържа една клетка и прилагане на ред форматиране.

Форматиране на списъка

Aspose.Words позволява лесното създаване на списъци чрез прилагане на форматиране на списъка. DocumentBuilder осигурява DocumentBuilder.ListFormat собственост, която връща a ListFormat Възразявам. Този обект има няколко метода за стартиране и приключване на списък и за увеличаване / намаляване на тирето.

list-fformatting-aspose-words-java
Има два общи вида списъци в Microsoft WordКуршум и номериран.

Куршумът или броят и форматирането се добавят към настоящия параграф и всички допълнителни параграфи, създадени с помощта на DocumentBuilder до ListFormat.removeNumbers е призован да спре форматирането на списъка с куршуми.

В документите на Word списъците могат да се състоят от до девет нива. Форматиране на списък за всяко ниво определя какъв куршум или номер се използва, ляво тире, пространство между куршума и текста и т.н.

  • За да се увеличи нивото на списъка на настоящия параграф с едно ниво, се обадете ListFormat.listIndent.
  • За да намалите нивото на списъка на настоящия параграф с едно ниво, се обадете ListFormat.listOutdent.

Методите променят нивото на списъка и прилагат форматиращите свойства на новото ниво.

Следният пример за код показва как да се изгради многостепенен списък.

Настройки на страница и форматиране на раздел

Настройката на страницата и свойствата на раздел са капсулирани в PageSetup обект, който се връща от DocumentBuilder.PageSetup собственост. Обектът съдържа всички атрибути за настройка на страницата на раздел (ляв марж, долна граница, размер на хартията и т.н.) като свойства.

section-formatting-aspose-words-java
Следният пример за код показва как да зададете такива свойства като размер на страница и ориентация за текущата секция.

Прилагане на стил

Някои форматиращи обекти като шрифт или § Format поддръжка стилове. Един вграден или определен от потребителя стил е представен от Style обект, който съдържа съответните стилови свойства като име, базов стил, шрифт и параграф форматиране на стила, и така нататък.

Освен това, Style обект осигурява Style.getStyleIdentifier имот, който връща локален независим идентификатор на стила, представен от a Style.StyleIdentifier стойност на изброяването. Въпросът е, че имената на вградените стилове в Microsoft Word са локализирани за различни езици. С помощта на идентификатор на стил, можете да намерите правилния стил, независимо от езика на документа. Стойностите на изброяване съответстват на Microsoft Word вградени стилове като Normal , Заглавие 1 , Заглавие 2 и т.н. Всички потребителски стилове са възложени StyleIdentifier. Стойност на потребителя.

apply-style-aspose-words-java
Следният пример за код показва как се прилага стил на параграф.

Граници и сянка

Границите са представени от BorderCollectation. Това е колекция от гранични обекти, които са достъпни по индекс или по граничен тип. Типът граница е представен от BorderType Изброяване. Някои стойности на изброяването са приложими за няколко или само един документен елемент. Например, BorderType.Bottom се прилага за параграф или таблица, докато BorderType.DiagonalDown определя диагоналната граница само в таблица.

Както събирането на границите, така и всяка отделна граница имат сходни атрибути като цвят, стил на линия, ширина на линията, разстояние от текста, и опционална сянка. Те са представени от свойства на едно и също име. Можете да постигнете различни типове граници чрез комбиниране на стойността на имотите. В допълнение, и двете BorderCollection както и Border обекти ви позволяват да рестартирате тези стойности по подразбиране чрез повикване на Border.clearFormatting метод. Имайте предвид, че когато граничните свойства се рестартират до стойности по подразбиране, границата е невидима.

set-borders-shading-aspose-words-java
На Shading класът съдържа сенчести атрибути за елементи на документ. Можете да зададете желаната сенчеста текстура и цветовете, които се прилагат на фона и преден план на елемента.

Сенчестата текстура е поставена с TextureIndex стойност на изброяване, която позволява прилагането на различни модели към Shading Възразявам. Например, за да зададете фонов цвят за елемент на документ, използвайте TextureIndex.TextureSolid стойност и настройте цвета на сянката на преден план според случая.

borders-and-shading-aspose-words-java
Примерът по-долу показва как да се прилагат граници и сенки към параграф.

Прилепване към мрежата

Aspose.Words осигурява две свойства ParagraphFormat.SnapToGrid както и Font.SnapToGrid да получите и да зададете параграф собственост щракване към мрежата

Преместване на курсора

Определяне на текущата позиция на курсора

Можете да получите там, където курсора на строителя е разположен в момента по всяко време. На DocumentBuilder.getCurrentNode имот връща възела, който в момента е избран в този строител. Възелът е пряко дете на параграф. Всички операции за вмъкване, които извършвате, като използвате DocumentBuilder ще се вмъкне преди DocumentBuilder.CurrentNode. Когато настоящият параграф е празен или курсорът е разположен точно преди края на параграфа, DocumentBuilder.CurrentNode Връща се нула.

Също така, можете да използвате DocumentBuilder.getCurrentParagraph собственост, която получава параграфа, който в момента е избран в това DocumentBuilder. Да.low code пример показва как да получите достъп до текущия възел в документостроител.

Преместване в който и да е възел (Параграфи и техните деца)

Ако имате документ обект възел, който е параграф или пряко дете на параграф, можете да посочите курсора на строителя към този възел. Използвайте DocumentBuilder.moveTo метод за извършване на това. Следният пример за код показва как да преместите курсора в определен възел.

Преместване в началото/край на документа

Ако трябва да преминете към началото на документа, обадете се DocumentBuilder.moveToDocumentStart. Ако трябва да преминете към края на документа, обадете се DocumentBuilder.moveToDocumentEnd.

Преместване в секция

Ако работите с документ, който съдържа множество раздели, можете да преминете в желания раздел, като използвате DocumentBuilder.moveToSection. Този метод премества курсора в началото на определен раздел и приема индекса на необходимия раздел. Когато секторният индекс е по-голям или равен на 0, той определя индекс от началото на документа, като 0 е първият раздел. Когато секторният индекс е по-малък от 0, той посочва индекс от края на документа с -1 е последният раздел. Да.low code пример показва как да преместите курсора в определения раздел. Можете да изтеглите шаблонния файл на този пример от Ето.

Преместване в заглавна част/футър

Когато трябва да поставите някои данни в заглавна част или стъпало, трябва да се преместите там първо с помощта на DocumentBuilder.moveToHeaderFooter. Методът приема стойност за изброяване HeaderFooterType, която идентифицира вида на заглавната част или стъпалото до мястото, където курсора трябва да се премести.

Ако искате да създадете заглавни части и подметки, които са различни за първата страница, трябва да зададете PageSetup.getDifferentFirstPageHeaderFooter собственост на true. Ако искате да създадете заглавни части и подметки, които са различни за четни и странни страници, трябва да зададете PageSetup.getOddAndEvenPagesHeaderFooter до true.

Ако искаш да се върнеш към главната история, използвайDocumentBuilder.moveToSection да се изнесат от заглавната част или стъпалото. По-долу пример създава заглавни части и подметки в документ, използвайки DocumentBuilder.

Преместване в даден абзац

ИзползванеDocumentBuilder.moveToParagraph да премести курсора в желания параграф в настоящия раздел. Трябва да преминете два параметъра към този метод: точка Index (индексът на параграфа, към който да се придвижите) и символаIndex (индекса на символа вътре в параграфа).

Навигацията се извършва в текущата история на текущата секция. Това означава, че ако преместите курсора в основната заглавна част на първата част, тогава параграфIndex определя индекса на параграфа в тази заглавна част на тази секция.

Когато параграфIndex е по-голям или равен на 0, той определя индекс от началото на раздела, като 0 е първият параграф. Когато параграф Index е по-малък от 0, той посочва индекс от края на раздела с -1 е последният параграф. Индексът на символите в момента може да бъде посочен само като 0 за преминаване към началото на параграфа или -1 за преминаване към края на параграфа. Следният пример за код показва как да се премести позицията на курсора към посочения параграф. Можете да изтеглите шаблонния файл на този пример от Ето.

Преместване в клетка на масата

Използване DocumentBuilder.moveToCell ако трябва да преместите курсора в клетка на масата в текущата секция. Този метод приема четири параметъра:

  • таблицаIndex - индексът на таблицата, към която да се преместите.
  • rowIndex - индексът на реда в таблицата.
  • колона Index - индексът на колоната в таблицата.
  • характерIndex - индексът на героя вътре в клетката.

Навигацията се извършва в текущата история на текущата секция.

За индексните параметри, когато индексът е по-голям или равен на 0, той определя индекс от началото, като 0 е първият елемент. Когато индексът е по-малък от 0, той определя индекс от края с -1 е последният елемент.

Също така, имайте предвид, че характерIndex в момента може да посочи само 0 да се премести в началото на клетката или -1 да се премести в края на клетката. Следният пример за код показва как да преместите позицията на курсора в определената таблица. Можете да изтеглите шаблонния файл на този пример от Ето.

Преместване към отметки

Отметките често се използват за отбелязване на определени места в документа, където трябва да се поставят нови елементи. За да преминете към отметките, използвайте DocumentBuilder.moveToBookmark. Този метод има две претоварвания. Най-простият не приема нищо друго освен името на отметките, където курсора трябва да се премести. Следният пример за код показва как да преместите курсора в отметки.

Това претоварване премества курсора на позиция непосредствено след началото на отметките с определено име. Още едно претоварване. DocumentBuilder.moveToBookmark премества курсора към отметки с по-голяма прецизност. Той приема два допълнителни булеански параметъра:

  • isStart определя дали да премести курсора в началото или в края на отметките.
  • isAfter определя дали да премести курсора, за да бъде след старта на отметките или крайната позиция, или да премести курсора, за да бъде преди отметките старт или крайна позиция.

Следният пример за код показва как да преместите курсора позиция в точно след отметките.

Вмъкването на нов текст по този начин не заменя съществуващия текст на отметките. Имайте предвид, че някои отметки в документа са предназначени да образуват полета. Преместване към такава отметки и вмъкване на текст там вмъква текста във формата поле код. Въпреки че това няма да обезвреди полето на формата, въведеният текст няма да бъде видим, защото става част от кода на полето.

Преместване в Merge Поле

Понякога може да се наложи да извършите “ръчно” mail merge приложение DocumentBuilder или попълнете сливане поле по специален начин вътре в mail merge Наставник на събития. Тогава… DocumentBuilder.moveToMergeField Може да е полезно. Методът приема името на полето за сливане. Премества курсора на позиция точно зад определено сливащо се поле и премахва сливащото се поле. Следният пример с код показва как да преместите курсора на позиция точно след определено сливащо се поле.

Как да конвертирате между измервателните единици

Повечето от обектите свойства, предвидени в Aspose.Words API които представляват някои измервания (ширина/височина, маржове и различни разстояния) приемат стойности в точки (1 инч равно на 72 точки). Понякога това не е удобно, така че има ConvertUtil клас, който осигурява помощни функции за преобразуване между различни измервателни единици. Позволява преобразуване на инча към точки, сочи към инча, пиксели към точки и сочи към пиксели. Когато пикселите се преобразуват в точки и обратно, то може да се извърши при 96 dpi (дот на инч) резолюции или при посочената резолюция dpi.

ConvertUtil е много полезно при задаване на различни свойства страница, тъй като например инча са по-обичайни измервателни единици, отколкото точки. Следващият пример показва как да се създаде страница свойства в инча.

Следният пример за код показва как да се определят свойствата на страницата в инча.