Работа с Съдържание

Често ще работите с документи, съдържащи съдържание (TOC). Използване Aspose.Words можете да поставите своя собствена таблица със съдържание или напълно да възстановите съществуващото съдържание в документа само с няколко реда код.

Тази статия очертава как да работите с полето на съдържанието и показва:

  • Как да поставите чисто нов TOC.
  • Обновяване на нови или съществуващи TOS в документа.
  • Посочете превключватели, за да контролира форматирането и цялостната структура на TOC.
  • Как да промените стиловете и външния вид на съдържанието.
  • Как да премахнете цяло TOC поле заедно с всички записи от документа.

Вмъкване на програмно съдържание

Можете да поставите TOC (таблица със съдържание) полето в документа на текущата позиция, като се нарича InsertTableOfContents метод.

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

По подразбиране превключвателите, които се използват в a TOC вложено в Microsoft Word аз ". Описание на тези ключове, както и списък на поддържаните ключове могат да бъдат намерени по-късно в статията. Можете да използвате това ръководство, за да получите правилните ключове или ако вече имате документ, съдържащ подобни TOC че искате да покажете кода на полето (ALT+F9) и да копирате превключвателите директно от полето.

Следният пример за код показва как да се вмъкне полето за съдържание в документ:

Следният пример за код показва как да се въведе таблица със съдържание (TOC) в документ, като се използват стилове на заглавие като записи:

Кодът показва, че новата таблица със съдържание се вмъква в празен документ. На DocumentBuilder класът се използва за въвеждане на форматиране на съдържанието на пробата с подходящи стилове на заглавие, които се използват за отбелязване на съдържанието, което да бъде включено в TOC. Следващите редове след това населяват TOC чрез актуализиране на полетата и оформлението на страницата на документа.

insert-table-of-contents-field-aspose-words-java

Обновяване на съдържанието

Aspose.Words Ви позволява да актуализирате напълно TOC само с няколко реда код. Това може да се направи, за да се населят нововъведени TOC или да актуализира съществуващо TOC след извършване на промени в документа.

Следните два метода трябва да се използват за актуализиране на TOC полета в документа:

  1. Document.updateFields()
  2. Document.updatePageLayout()

Моля, имайте предвид, че тези два метода за актуализация трябва да бъдат призовани в този ред. Ако бъде обърнато, съдържанието ще бъде населено, но няма да се показват номерата на страниците. Може да бъде актуализиран всеки брой различни ТОК. Тези методи автоматично ще обновят всички TOS намерени в документа.

Следният пример за код показва как да се възстанови напълно TOC полета в документа като се позовава на актуализации на полето:

Първото обаждане Document.updateFields() ще изгради <span notrans="<span notrans=" TOC"="">,"> Всички текстови записи са населени и TOC Изглежда почти завършен. Единственото нещо, което липсва, е номерата на страниците, които засега се показват с гол?.

Второто обаждане до Document.updatePageLayout() ще изгради оформлението на документа в памет. Това трябва да се направи, за да се съберат номерата на страниците на вписванията. Правилните номера на страниците, изчислени от това обаждане, след това се добавят в ТОН.

Използване на превключватели за контрол на съдържанието

Както при всяко друго поле, TOC полето може да приема превключватели, определени в кода на полето, които контролират начина на изграждане на съдържанието. Някои превключватели се използват за контрол кои записи са включени и на какво ниво, докато други се използват за контрол на външния вид на TOC. Превключвателите могат да се комбинират заедно, за да се даде възможност за производство на сложна таблица със съдържание.

ccontrol-table-of-contents-field-aspose-words-java

По подразбиране тези превключватели са включени при поставяне по подразбиране TOC в документа. A TOC без превключватели ще включва съдържание от вградените стилове на заглавие (като че ли \O превключвател е настроен).

Наличните TOC превключватели, които се поддържат от Aspose.Words са изброени по-долу и тяхната употреба е описана подробно. Те могат да бъдат разделени на отделни секции въз основа на техния тип. Превключвателите в първия раздел определят какво съдържание да се включи в TOC и превключвателите във втория раздел контролират външния вид на TOC.

Ако превключвателят не е записан тук, в момента не се поддържа. Всички ключове ще бъдат поддържани в бъдещи версии. Добавяме допълнителна подкрепа към всяко освобождаване.

Превключватели

Превключване Описание
Heading Styles
*(\O Switch) *

Този превключвател определя, че TOC трябва да бъде изграден от вградените стилове. В Microsoft Word, Те се определят от No 1 год. 9. Aspose.Words Тези стилове са представени от съответния StyleIdentifier изброяване. Това изброяване представлява локален независим идентификатор на стил, например, StyleIdentifier.Heading1 представлява стила на функция 1. Чрез това форматирането и свойствата на стила могат да бъдат извлечени от колекцията стил на документа. Съответният клас стил може да бъде извлечен от Document.Styles събиране чрез използване на индексиран имот от тип StyleIdentifier.

![style-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-3.png)



Всяко съдържание, форматирано с тези стилове, е включено в съдържанието. Нивото на заглавието ще определи съответното йерархично ниво на вписването в TOC. Например параграф със стил "No 1" ще бъде третиран като първо ниво `TOC` като има предвид, че параграф с функция 2 ще се разглежда като следващото ниво в йерархията и така нататък.

| | **Outline Levels**
*(\U превключвател) *
|

Всеки параграф може да определи ниво на очертания съгласно опциите по параграф.

![modify-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-4.png)



Тази настройка определя на кое ниво трябва да се разглежда този параграф в йерархията на документите. Това е често използвана практика, използвана за лесно структуриране на оформлението на документ. Тази йерархия може да се разглежда чрез промяна в Outline View в Microsoft Word. Подобно на заглавията стилове, може да има 1 по 9 очертания нива, в допълнение към нивото на Body текст. Outline нива 1 по 9 ще се появи в `TOC` на съответното ниво на йерархията
Всяко съдържание с ниво на очертания, определено в стила на параграфа или директно на самия параграф, е включено в ТОС. В Aspose.Words нивото на контура е представено от `ParagraphFormat.OutlineLevel` собственост на възела на §. Обосновката на стила на параграфа е представена по същия начин от `Style.ParagraphFormat` собственост.

| | **Custom Styles**
*(\T превключвател) *
|

Този превключвател ще позволи използването на потребителски стилове при събиране на записи, които да се използват в TOC. Това често се използва в комбинация с \O превключвател, за да включва потребителски стилове заедно с вградени заглавия стилове в TOC.
Параметрите на превключвателя трябва да бъдат затворени в говорните знаци. Много потребителски стилове могат да бъдат включени, за всеки стил, името трябва да бъде посочено следвано от запетая последвано от нивото, че стилът трябва да се появи в `TOC` Като. По-нататъшните стилове също са разделени от запетая, както добре.
Например

{ TOC \o "1-3" \t "CustomHeading1, 1,   CustomHeading2, 2"}

ще използва съдържание, стилирано с CustomHeading1 като съдържание от ниво 1 в `TOC` и Custom Heading2 като ниво 2.

| | Използване на TC полета
*(\F и \L превключватели) *
|

В по- стари версии на Microsoft Word, единственият начин да се изгради `TOC` е използването на TC полета. Тези полета се вкарват скрити в документа дори когато се показват кодовете на полетата. Те включват текста, който трябва да бъде показан във вписването и `TOC` е построен от тях. Тази функционалност сега не се използва много често, но все още може да бъде полезно в някои случаи да се включат записи в `TOC` които не се виждат в документа.
При въвеждането на тези полета се появяват скрити дори когато се показват кодове на полета. Те не могат да бъдат видени без да покажат скрито съдържание. За да видите тези полета, трябва да изберете форматиране на параграфа.

![setup-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-5.png)

Тези полета могат да бъдат включени в документ на всяка позиция като всяко друго поле и са представени от `FieldType.FieldTOCEntry` Изброяване.
Превключвателят \F в a `TOC` се използва за уточняване, че полетата TC следва да се използват като вписвания. Самият превключвател без допълнителен идентификатор означава, че всяко поле на TC в документа ще бъде включено. Всеки допълнителен параметър, често една буква, ще посочи, че само TC полета, които имат съвпадение \f превключвател ще бъдат включени в TOC. Например *

{ TOC \f t }

ще включва само TC полета като

{ TC \f t }

На `TOC` полето също така има свързан превключвател, прекъсвача. .. .. ..

![table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-6.png)



На `TC` Самите полета също могат да имат {several, `multiple`, a few, `many`, numerous} Включете прекъсвачите. Това са:

Обяснено по-горе. *

- \L го определя кое ниво в `TOC` Това поле ще се появи. A `TOC` който използва същия превключвател, ще включва това поле на TC само ако е в рамките на определения обхват.

- _\ N\ N\ Номерирането на страницата за това `TOC` записът не е показан. В следващия раздел може да бъде намерен примерен код за въвеждане на полетата TC.

|

Външни прекъсвачи

Превключване Описание
Omit Page Numbers
*(\N Switch) *

Този превключвател се използва за скриване на номерата на страниците за определени нива на TOC. Например, можете да определите

{TOC \o "1-4" \n "3-4" }

и номерата на страниците на влизанията на нива 3 и 4 ще бъдат скрити заедно с лидерските точки (ако има такива). За да се определи само едно ниво на диапазон все още трябва да се използва, например, да се изключат номера на страници само за първото ниво.
Доставянето на обхват на ниво няма да пропусне номерата на страниците за всички нива в TOC. Това е полезно за задаване при експортиране на документ в HTML или подобен формат. Това е така, защото HTML базирани формати не са никаква концепция страница и по този начин не се нуждаят от всяка страница номерация.

![table-of-contents-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-7.png)

| | Вмъкване като хипервръзки
*(\H Switch) * |

Този ключ посочва, че `TOC` вписванията се вмъкват като хипервръзки. При разглеждане на документ в Microsoft Word Тези записи все още ще се появяват като нормален текст вътре в `TOC` но са хипервръзки и по този начин може да се използва за навигация към позицията на оригиналния запис в документа, като се използва *Ctrl + Left Click* in Microsoft Word. Когато този превключвател е включен, тези връзки се запазват и в други формати. Например, в HTML базирани формати, включително EPUB и превърнати формати като PDF и XPS, те ще бъдат изнесени като работни връзки.
Без този ключ, `TOC` във всички тези изходи ще бъдат изнесени като обикновен текст и няма да демонстрират това поведение. Ако документът е отворен в MS Word, текстът на вписванията също няма да може да бъде натиснат по този начин, но номерата на страниците все още могат да бъдат използвани за навигация към оригиналния запис.

![tree-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-8.png)

| | **Set Separator Character**
*(\P Switch) *
|

Този превключвател позволява лесно да се промени съдържанието, разделящо заглавието на входната и страница. Сепараторът, който трябва да се използва, трябва да се посочи след този превключвател и да се постави в говорни знаци.
Противно на това, което е документирано в Office документация, може да се използва само един символ вместо до пет. Това важи както за MS Word, така и Aspose.Words.
Използването на този превключвател не се препоръчва, тъй като не позволява много контрол върху това, което използва за разделяне на записи и номера на страници в TOC. Вместо това се препоръчва да се редактира подходящо `TOC` стил като `StyleIdentifier.TOC1` и от там редактирайте стила на лидера с достъп до конкретни членове на шрифта и др. Повече подробности за това как да направите това може да се намери по-късно в статията.

![list-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-9.png)

| | **Preserve Tab Entries**
*(\W Switch) * |

Използването на този превключвател ще уточни, че всички записи, които имат символ подпрозорец, например заглавие, което има подпрозорец в края на линията, ще бъдат запазени като подходящ символ подпрозорец при населяването на TOC. Това означава, че функцията на символа подпрозорец ще присъства в `TOC` и може да се използва за форматиране на текста. Например, някои записи могат да използват спирания на подпрозорците и таб символите, за да разгърнат равномерно текста. Докато съответният `TOC` ниво определя еквивалентния раздел спира след това генерираното `TOC` Записите ще се появят с подобно разстояние.

В същата ситуация, ако този превключвател не е определен, символите на раздела ще бъдат преобразувани в еквивалент на бяло пространство като нефункциониращи раздели. Изходът тогава няма да изглежда както се очакваше.

![tab-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-10.png)

| | **Preserve New Line Entries**
*(\X Switch) *
|

Подобно на превключвателя по-горе, този превключвател посочва, че позиции, простиращи се по няколко линии (с използване на нови символи, а не на отделни точки) ще бъдат запазени, тъй като те са в генерираната TOS. Например позиция, която трябва да се разпространи по няколко линии, може да използва новия символ на линия (Ctrl + Enter или `ControlChar.LineBreak`) да разделят съдържанието през различни линии. С този ключ, посочен, записът в `TOC` ще запази тези нови символи линия, както е показано по-долу.

В тази ситуация, ако превключвателят не е определен, тогава новите символи на линия се преобразуват в едно бяло пространство.

![tab-space-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-11.png)

|

Вмъкване на полета TC

Можете да поставите ново TC поле на текущата позиция на DocumentBuilder като се обадя на DocumentBuilder.InsertField метод и определяне на името на полето като .TC.. заедно с всички ключове, които са необходими.

Следният пример с код показва как да поставите a TC поле в документа, като се използва DocumentBuilder.

Често определен ред от текста е определен за TOC и е маркиран с TC Поле. Лесният начин да направите това в MS Word е да подчертаете текста и натиснете ALT+SHIFT+O. Това автоматично създава TC поле с помощта на избрания текст. Същата техника може да се постигне чрез код. Кодът по-долу ще намерите текст, съответстващ на входа и вмъкване на TC поле в същата позиция като текста. Кодът се основава на същата техника, използвана в статията. Следният пример с код показва как да намерите и въведете TC поле в текста в документ.

Промяна на съдържанието

Промяна формата на стиловете

Форматиране на записите в TOC не използва оригиналните стилове на маркираните вписвания, вместо това всяко ниво се форматира с еквивалентен TOC стил. Например, първото ниво в TOC е форматиран с TOC1 стил, на второ ниво, форматиран с TOS2 стил и така нататък. Това означава, че за да промените външния вид на TOC Тези стилове трябва да бъдат променени. В Aspose.Words Тези стилове са представени от местното-независимо StyleIdentifier.TOC1 през до StyleIdentifier.TOC9 и могат да бъдат извлечени от Document.Styles събиране с помощта на тези идентификатори.

След като подходящият стил на документа е възстановен форматирането за този стил може да бъде променено. Всички промени в тези стилове автоматично ще бъдат отразени в TOCs в документа.

Следният пример за код променя форматиращ имот, използван на първо ниво TOC стил.

Също така е полезно да се отбележи, че всяко пряко форматиране на параграф (определено на самия параграф, а не в стила), което трябва да бъде включено в TOC ще бъде копирано във вписването в TOC. Например, ако стилът “No 1” се използва за отбелязване на съдържанието TOC и този стил има смел форматиране, докато параграфът също има италиански формат, директно приложен към него. Резултатът TOC Влизането няма да бъде смело, тъй като това е част от форматирането на стила, но ще бъде италитично, тъй като това е директно форматирано на параграфа.

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

Използване на Style клас, получен за конкретния случай TOC ниво, което искате да промените, можете също така да промените начина, по който те се появяват в документа.

Да се промени как това се появява първо Style.ParagraphFormat трябва да бъдат призовани да възстановят формата на параграфа за стила. От това, табът спира, като се обажда ParagraphFormat.TabStops и съответната таблица стоп променени. Използването на същата техника самата таб може да се премести или премахне напълно.

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

Премахване на съдържанието от документа

Съдържанието може да бъде премахнато от документа чрез премахване на всички намерени възли между FieldStart и Field End възел на TOC Поле.

Кодът по-долу показва това. Премахване на TOC Полето е по-просто от обикновено поле, тъй като не следим гнездата на полетата. Вместо това, ние проверяваме FieldEnd Възелът е от тип FieldType.FieldTOC Което означава, че сме се сблъскали с края на сегашния TOC. Тази техника може да се използва в този случай, без да се притеснявате за всяко гнездо полета, тъй като ние можем да приемем, че всеки правилно формиран документ няма да има напълно гнездо TOC поле вътре в друго TOC Поле.

Първо, FieldStart възли от всяка TOC се събират и съхраняват. Посоченият TOC След това се изброява, така че всички възли в полето се посещават и съхраняват. След това възлите се отстраняват от документа. Следният пример за код показва как да премахнете определен код TOC от документ.

Съдържание на екстракт

Ако искате да извлечете съдържание от Word документ, може да се използва следната проба код.