Използване на DocumentBuilder за лесно модифициране на документ

Задаване На Форматиране

Форматиране На Шрифта

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

Форматиране На Абзац

Текущото форматиране на абзац е представено от обект ParagraphFormat, който се връща от свойството DocumentBuilder.ParagraphFormat. Този обект капсулира различни свойства за форматиране на абзац, Налични в Microsoft Word. Можете лесно да нулирате форматирането на абзаца по подразбиране до нормален стил, подравнено наляво, без отстъп, без разредка, без граници и без засенчване, като извикате ParagraphFormat.ClearFormatting. По-долу пример показва как да зададете форматиране на абзац.

Работа с азиатска типография

Автоматично регулиране на разстоянието между азиатски и латински текст, числа

Ако проектирате шаблон с източноазиатски и латински текст и искате да подобрите облика на шаблона на формуляр, като контролирате интервалите между двата типа текст, можете да конфигурирате вашия шаблон на формуляр да коригира автоматично интервалите между тези два типа текст. Можете да използвате AddSpaceBetweenFarEastAndAlpha и AddSpaceBetweenFarEastAndDigit свойствата на ParagraphFormat клас, за да постигнете това.

След Код пример показват как да използвате ParagraphFormat.AddSpaceBetweenFarEastAndAlpha и ParagraphFormat.AddSpaceBetweenFarEastAndDigit свойства.

Промяна на Азиатската разредка на абзаци и отстъпи

Следващият пример за код показва как да промените Азиатската разредка на абзаците и отстъпите.

Задаване На Опции За Прекъсване На Линия

Разделът Азиатска типография на диалоговия прозорец Paragraph свойства във MS Word има група за прекъсване на ред. Опциите на тази група могат да бъдат зададени чрез FarEastLineBreakControl, WordWrap, HangingPunctuation свойства на ParagraphFormat клас. Даlow code пример показва как да използвате тези свойства.

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

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

Форматиране На Редове

Текущото форматиране на ред се определя от обект RowFormat, който се връща от свойството DocumentBuilder.RowFormat. Обектът капсулира информация за цялото форматиране на редовете в таблицата. По-долу пример показва как да създадете таблица, която съдържа една клетка и прилагане на форматиране на редове.

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

Aspose.Words позволява лесно създаване на списъци чрез прилагане на форматиране на списък. DocumentBuilder предоставя свойство DocumentBuilder.ListFormat, което връща ListFormat обект. Този обект има няколко метода за стартиране и завършване на списък и за увеличаване/намаляване на отстъпа. Има два основни типа списъци в Microsoft Word: водещи символи и номерирани.

  • За да започнете списък с водещи символи, обадете се ListFormat.ApplyBulletDefault.
  • За да започнете номериран списък, обадете се ListFormat.ApplyNumberDefault.

Водещи символи или номер и форматиране се добавят към текущия абзац и всички допълнителни абзаци, създадени с DocumentBuilder, докато ListFormat.RemoveNumbers се извиква, за да спре форматирането на списък с водещи символи. В документите Word списъците могат да се състоят от до девет нива. Форматирането на списък за всяко ниво указва кой водещ или номер се използва, ляв отстъп, интервал между водещия и текста и т.н.

  • За да увеличите нивото на списъка на текущия абзац с едно ниво, обадете се ListFormat.ListIndent.
  • За да намалите нивото на списъка на текущия абзац с едно ниво, обадете се ListFormat.ListOutdent.

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

По-долу пример показва как да се изгради многостепенен списък.

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

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

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

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

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

Граници и засенчване

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

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

Текстурата на засенчване е зададена със стойност TextureIndex изброяване, която позволява прилагането на различни модели към Shading обект. Например за да зададете цвят на фона за елемент на документа, използвайте стойността TextureIndex.TextureSolid и задайте цвета на оцветяване на преден план, както е подходящо. По-долу пример показва как да приложите граници и оцветяване на абзац.

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

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

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

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

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

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

Преместване на всеки възел (абзаци и техните деца)

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

Преминаване към документа Начало / Край

Ако трябва да преминете към началото на документа, обадете се DocumentBuilder.MoveToDocumentStart. Ако трябва да преминете към края на документа, обадете се DocumentBuilder.MoveToDocumentEnd. По-долу пример показва как да преместите позиция на курсора до началото или края на документ. Можете да изтеглите шаблонен файл на този пример от тук.

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

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

Преместване в горен / долен колонтитул

Когато трябва да поставите някои данни в горен или долен колонтитул, първо трябва да се придвижите там, като използвате DocumentBuilder.MoveToHeaderFooter. Методът приема стойност HeaderFooterType, която идентифицира типа горен или долен колонтитул, където трябва да бъде преместен курсорът. Ако искате да създадете горни и долни колонтитули, които са различни за първата страница, трябва да зададете свойството PageSetup.DifferentFirstPageHeaderFooter на true. Ако искате да създадете горни и долни колонтитули, които са различни за четни и нечетни страници, трябва да зададете PageSetup.OddAndEvenPagesHeaderFooter до true.

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

Преминаване към абзац

Използвайте DocumentBuilder.MoveToParagraph, за да преместите курсора до желания абзац в текущия раздел. Трябва да подадете два параметъра към този метод: paragraphIndex (индексът на абзаца, към който да се придвижите) и characterIndex (индексът на знака в абзаца).

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

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

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

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

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

  • tableIndex - индекс на таблицата, към която да се придвижите.
  • rowIndex - индексът на реда в таблицата.
  • columnIndex - индекс на колоната в таблицата.
  • characterIndex - индексът на знака вътре в клетката.

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

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

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

Отметките често се използват за маркиране на конкретни места в документа, където трябва да се вмъкнат нови елементи. За да преминете към отметка, използвайте DocumentBuilder.MoveToBookmark. Този метод има две претоварвания. Най-простият не приема нищо, освен името на отметката, където курсорът трябва да бъде преместен. Примерът по-долу показва как да преместите позицията на курсора в отметка. Можете да изтеглите шаблонен файл на този пример от тук.

Това претоварване премества курсора в позиция точно след началото на отметката с зададеното име. Друго претоварване DocumentBuilder.MoveToBookmark премества курсора в отметка с по-голяма точност. Приема два допълнителни булеви параметъра:

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

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

Сравнението за двата метода не е чувствително към малки и големи букви.

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

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

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