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

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

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

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

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

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

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

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

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

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

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

  1. UpdateFields
  2. UpdatePageLayout

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

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

Първото обаждане UpdateFields ще изгради <span notrans="<span notrans=” TOC"="">,"> всички текстови записи са населени и TOC изглежда почти завършен. Единственото нещо, което липсва, е номерата на страниците, които засега се показват с гол. Второто обаждане UpdatePageLayout ще изгради оформлението на документа в памет. Това трябва да се направи, за да се съберат номерата на страниците на вписванията. Правилните номера на страниците, изчислени от това обаждане, след това се вмъкват в TOC.

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

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

working-with-table-of-contents-aspose-words-net

По подразбиране тези ключове по-горе са включени при поставяне по подразбиране TOC в документа. A TOC без превключватели ще включва съдържание от вградените стилове на заглавие (като че ли \O превключвател е настроен). Наличните TOC превключватели, които се поддържат от Aspose.Words са изброени по-долу и тяхната употреба са описани подробно. Те могат да бъдат разделени на отделни секции, базирани на техния тип. Превключвателите в първия раздел определят какво съдържание да се включи в TOC и превключвателите във втората секция контролират външния вид на TOC. Ако бутонът не е записан тук, в момента не се поддържа. Всички превключватели ще бъдат поддържани в бъдещи версии. Добавяме допълнителна подкрепа с всяко освобождаване.

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

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

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

![working-with-table-of-contents-styles](/words/net/working-with-table-of-contents/working-with-table-of-contents-2.png)

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

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

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

![working-with-table-of-contents-paragraph](/words/net/working-with-table-of-contents/working-with-table-of-contents-3.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` Като. По-нататъшните стилове са разделени и от запетая.
Например

<p>  { TOC \o "1-3" \t "CustomHeading1, 1,   CustomHeading2, 2"} </p><p>

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

| | **Use TC Fields**
*(\F и \L превключватели) * |

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

![working-with-table-of-contents-paragraph-settings](/words/net/working-with-table-of-contents/working-with-table-of-contents-4.png)

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

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

p> {   TC \f t }</p><p>

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

![todo:image_alt_text](/words/net/working-with-table-of-contents/working-with-table-of-contents-5.png)

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

- По-горе е обяснено. *

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

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

|

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

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

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

<p>  {TOC \o "1-4" \n "3-4" } </p><p>

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

![todo:image_alt_text](/words/net/working-with-table-of-contents/working-with-table-of-contents-6.png)

| | **Insert As Hyperlinks**
*(\H Switch) * |

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

![working-with-table-of-contents-titles](/words/net/working-with-table-of-contents/working-with-table-of-contents-7.png)

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

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

![working-with-table-of-contents-toc](/words/net/working-with-table-of-contents/working-with-table-of-contents-8.png)

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

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

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

![working-with-table-of-contents-aspose](/words/net/working-with-table-of-contents/working-with-table-of-contents-9.png)

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

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

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

![working-with-table-of-contents-aspose-words](/words/net/working-with-table-of-contents/working-with-table-of-contents-10.png)

|

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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