Работа със стилове
StyleCollection класът се използва за управление на вградени и прилагане на дефинирани от потребителя настройки към стилове.
Как да извличате съдържание въз основа на стилове
На просто ниво извличането на съдържанието въз основа на стилове от документ Word може да бъде полезно за идентифициране, изброяване и броене на абзаци и тиражи на текст, форматиран с определен стил. Например може да се наложи да идентифицирате определени видове съдържание в документа, като например примери, заглавия, препратки, ключови думи, имена на фигури и казуси.
За да направите това няколко стъпки по-нататък, това може да се използва и за използване на структурата на документа, определена от стиловете, които използва, за повторно насочване на документа за друг изход, като HTML. Това всъщност е начинът, по който се изгражда документацията, поставяйки Aspose.Words на теста. Инструмент, създаден с Aspose.Words, взема документите източник Word и ги разделя на теми на определени нива на заглавия. Файл XML се произвежда, като се използва Aspose.Words, който се използва за изграждане на навигационното дърво, което можете да видите отляво. След това Aspose.Words преобразува всяка тема във HTML.
Решението за извличане на текст, форматиран със специфични стилове в документ Word, обикновено е икономично и лесно, като се използва Aspose.Words.
Решението
За да илюстрираме колко лесно Aspose.Words се справя с извличането на съдържание въз основа на стилове, нека разгледаме един пример. В този пример ще извлечем текст, форматиран с определен стил на абзац и стил на знак от примерен документ Word. На високо ниво това ще включва:
- Отваряне на документ Word с помощта на клас
Document
. - Получаване на колекции от всички параграфи и всички работи в документа.
- Изберете Само необходимите параграфи и работи. По-конкретно, ще извлечем текст, форматиран със стила на' Heading 1 ‘абзац и стила на’ интензивен акцент ' от този образец Word документ.
В този примерен документ текстът, форматиран със стил' Heading 1 ‘абзац, е ‘Вмъкване’, ‘Бързи стилове’ и ‘тема’, а текстът, форматиран със стил ‘интензивен акцент’, е няколко екземпляра на син, курсив, удебелен текст като ‘галерии’и’ цялостен изглед’.
Кодексът
Изпълнението на заявка, базирана на стил, е доста просто в модела Aspose.Words обект на документ, тъй като просто използва инструменти, които вече са налице. За това решение са имплементирани два метода на класа:# ParagraphsByStyleName – този метод извлича масив от онези абзаци в документа, които имат конкретно име на стил.# RunsByStyleName - този метод извлича масив от тези, които се изпълняват в документа, които имат конкретно име на стил. И двата метода са много сходни, като единствените разлики са типовете възли и представянето на информацията за стила в абзаца и стартирайте възли. Това е приложение на ParagraphsByStyleName. По-долу пример Намерете всички абзаци форматирани със зададения стил.
Тази имплементация използва и метода Document.GetChildNodes
на класа Document
, който връща колекция от всички възли със зададения тип, който в този случай във всички абзаци.
Обърнете внимание, че вторият параметър на метода Document.GetChildNodes е зададен като верен. Това принуждава метода Document.GetChildNodes да избира рекурсивно от всички дъщерни възли, вместо да избира само непосредствените деца.
Също така си струва да се отбележи, че събирането на абзаци не създава непосредствени режийни, защото абзаците се зареждат в тази колекция само когато имате достъп до елементи в тях. След това всичко, което трябва да направите, е да преминете през колекцията, като използвате стандарта за всеки оператор и добавите абзаци, които имат зададения стил към масива paragraphsWithStyle. Paragraph
името на стила може да се намери в стила. Име на собственост на Paragraph.ParagraphFormat
обект. Изпълнението на RunsByStyleName е почти същото, въпреки че очевидно използваме NodeType.Run
, за да изтеглим стартовите възли. Свойството Font.Style
на Run
обект се използва за достъп до стилова информация в Run възлите. Примерът бъдиlow code намери всички писти форматирани със зададения стил.
Когато се изпълняват и двете заявки, всичко, което трябва да направите, е да подадете обект на документ и да зададете имената на стила на съдържанието, което искате да извлечете: по-долу пример изпълнение на заявки и показване на резултатите. Можете да изтеглите шаблонния файл на този пример от тук.
Краен Резултат
Когато всичко е направено, изпълнението на пробата ще покаже следния изход:
Както можете да видите, това е много прост пример, показващ броя и текста на събраните параграфи и се изпълнява в примерния документ Word.
Как да вмъкнете и работите с полето Съдържание
Често ще работите с документи, съдържащи съдържание (TOC). Използвайки Aspose.Words можете да вмъкнете свое собствено съдържание или напълно да възстановите съществуващото съдържание в документа, като използвате само няколко реда код. Тази статия очертава как да работите с полето съдържание и демонстрира:
- Как да вмъкнете чисто нов
TOC
- Актуализиране на нов или съществуващ TOCs в документа.
- Задайте превключватели, за да контролирате форматирането и цялостната структура на TOC.
- Как да промените стиловете и външния вид на съдържанието.
- Как да премахнете цяло поле
TOC
заедно с всички записи от документа.
Въведете TC Полета
Често определен ред от текста е обозначен за TOC
и е маркиран с поле TC
. Лесният начин да направите това в MS Word е да маркирате текста и да натиснете ALT+SHIFT+O. Това автоматично създава поле TC
, като използва избрания текст. Същата техника може да се постигне чрез код. Кодът по-долу ще намери текст, който съответства на въведеното и ще вмъкне поле TC
в същата позиция като текста. Кодът се основава на същата техника, използвана в статията. По-долу пример показва как да намерите и вмъкнете поле TC
в текста в документ.
Промяна на съдържание
Промяна на форматирането на стилове
Форматирането на записите в TOC
не използва оригиналните стилове на маркираните записи, вместо това всяко ниво се форматира с еквивалентен стил TOC
. Например първото ниво в TOC
е форматирано със стил TOC1, второто ниво е форматирано със стил TOC2 и така нататък. Това означава, че за да промените външния вид на TOC
тези стилове трябва да бъдат променени. В Aspose.Words тези стилове са представени от независими от локала StyleIdentifier.TOC1
до StyleIdentifier.TOC9
и могат да бъдат извлечени от колекцията Document.Styles
с помощта на тези идентификатори. След като съответният стил на документа бъде извлечен, форматирането за този стил може да бъде променено. Всички промени в тези стилове ще бъдат отразени автоматично в TOCs в документа. Примерът бъдиlow code променя свойството форматиране, използвано в стила на първо ниво TOC
.
Също така е полезно да се отбележи, че всяко директно форматиране на абзац (дефинирано в самия абзац, а не в стила), маркирано да бъде включено TOC
, ще бъде копирано в записа в TOC. Например ако стилът Heading 1 се използва за маркиране на съдържание за TOC
и този стил има удебелено форматиране, докато абзакът също има курсив форматиране директно приложено към него. Полученият TOC
запис няма да бъде получер, тъй като това е част от форматирането на стил, но ще бъде курсив, тъй като това е директно форматирано в абзаца. Можете също да контролирате форматирането на разделителите, използвани между всеки запис и номера на страницата. По подразбиране това е пунктирана линия, която е разпределена в номерирането на страници с помощта на знак за табулация и десен табулатор, подредени близо до дясното поле.
Използвайки клас Style
, извлечен за конкретното ниво TOC
, което искате да промените, можете също да промените как те се показват в документа. За да промените начина, по който това се появява, първо трябва да се извика Style.ParagraphFormat
, за да извлечете форматирането на абзаца за стила. От това табулаторите могат да бъдат извлечени чрез обаждане ParagraphFormat.TabStops
и промяна на съответния табулатор. Използвайки същата тази техника, самият раздел може да бъде преместен или премахнат напълно. Примерът беlow code показва как да промените позицията на десния табулатор в параграфи TOC
. Можете да изтеглите шаблонния файл на този пример от тук.
Премахване на съдържание от документа
Съдържанието може да бъде премахнато от документа, като се премахнат всички възли между FieldStart
и FieldEnd на полето TOC
. Кодът по-долу показва това. Премахването на полето TOC
е по-просто от нормалното поле, тъй като не следим вложените полета. Вместо това проверяваме FieldEnd
възела е от тип FieldType.FieldTOC
, което означава, че сме срещнали края на текущия TOC. Тази техника може да се използва в този случай, без да се притеснявате за вложени полета, тъй като можем да приемем, че всеки правилно оформен документ няма да има напълно вложено поле TOC
в друго поле TOC
. На първо място се събират и съхраняват възлите FieldStart
на всеки TOC
. Посоченият TOC
след това се изброява, така че всички възли в полето се посещават и съхраняват. След това възлите се премахват от документа. Примерът беlow code показва как да премахнете определен TOC
от документ. Можете да изтеглите шаблонния файл на този пример от тук.
Вмъкване на разделител на стилове, за да поставите различни стилове на абзаци
Разделителят на стил може да бъде добавен в края на абзац, като се използва клавишната комбинация MS Word. Тази функция позволява два различни стила на абзаца, използвани в един логически отпечатан абзац. Ако искате част от текста от началото на определено заглавие да се показва в съдържание, но не искате цялото заглавие в съдържанието, можете да използвате тази функция. Примерът бъдиlow code показва как да вмъкнете разделител на стил, за да поставите различни стилове на абзаци.
Копиране на всички стилове от шаблона
Има случаи, когато искате да копирате всички стилове от един документ в друг. Можете да използвате метода Document.CopyStylesFromTemplate
, за да копирате стилове от зададения шаблон в документ. Когато стиловете се копират от шаблон в документ, стиловете с имена като тези в документа се предефинират, за да съответстват на описанията на стила в шаблона. Уникалните стилове от шаблона се копират в документа. Уникалните стилове в документа остават непокътнати. Примерът бъдиlow code показва как да копирате стилове от един документ в друг.