Робота з Змістом

Часто ви будете працювати з документами, що містять таблицю змісту (TOC). Використання Aspose.Words Ви можете вставляти свій власний таблицю змісту або повністю перебудувати існуючий таблицю змісту в документі за допомогою всього декількох рядків коду. У статті описано, як працювати з таблицею поля контенту та демонструє:

  • Як вставити бренд новий TOC
  • Оновлення нових або існуючих TOC в документі.
  • Вкажіть перемикачі для керування форматуванням та загальною структурою f TOC.
  • Як змінити стилі і зовнішній вигляд таблиці змісту.
  • Як видалити всю TOC поле разом з усіма записами формує документ.

Вставте таблицю змісту программатично

Ви можете вставити TOC (табл. змісту) поле в документ на поточному положенні за викликом InsertTableOfContents метод.

Таблиця змісту у документі Word може бути побудована в ряді способів і форматування за допомогою різних варіантів. Увімкнено поле, що ви передаєте до методу управління, спосіб побудови таблиці та відображається у вашому документі.

Перемикачі за замовчуванням, які використовуються в TOC вставки Microsoft Word Р **""\o “1-3 \h \z \u”**й Описи цих вимикачів, а також перелік підтримуваних перемикачів можна знайти пізніше в статті. Якщо ви вже маєте документ, що містить аналогічний TOC Ви хочете показати коди поля (ALT+F9) і скопіювати перемикачі безпосередньо з поля.

Приклад коду показує, як вставити таблицю поля змісту в документ:

Наприклад, наступний код показує, як вставити таблицю змісту (TOC) в документ, використовуючи стилі заголовки як записи.

Оновлення змісту

Aspose.Words дозволяє повністю оновлювати оновлення TOC лише кілька рядків коду. Це може бути зроблено для того, щоб створити нову вставку TOC або оновити існуючий TOC після внесення змін до документа. Для оновлення необхідно використовувати наступні два способи TOC поля в документі:

  1. UpdateFields
  2. UpdatePageLayout

Будь ласка, зверніть увагу, що ці два способи оновлення повинні бути викликані в цьому порядку. Якщо перевернути таблицю змісту буде заселений, але не буде відображатися номер сторінки. Будь-яка кількість різних TOC можна оновити. Ці методи автоматично оновлюватимуть всі ТЦ, знайдені в документі.

Приклад коду показує, як повністю перебудувати TOC поля в документі, викликаючи оновлення поля:

Перший дзвінок UpdateFields побудувати <span notrans="<span notrans=" TOC"="">, > всі текстові записи заселені і TOC з’являється практично повністю. Єдине, що не вистачає сторінок, які зараз відображаються з “?”. Другий виклик UpdatePageLayout побудувати макет документа в пам’яті. Для збирання номерів сторінок. Виправте номери сторінок, розраховані з цього виклику, потім вставляються в TOC.

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

Як і будь-яке інше поле, TOC поле може приймати перемикачі, визначені в Полі-коді, які контрольують, як будується таблиця змісту. Деякі перемикачі використовуються для контролю, які записи включені і на якому рівні, в той час як інші використовуються для контролю зовнішнього вигляду TOC. Перемикачи можуть поєднуватися між собою, щоб забезпечити складний стіл контенту, який буде виготовлений.

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

За замовчуванням ці перемикачі вище включені при вставці за замовчуванням TOC у документі. Р TOC без перемикачів буде включати вміст з вбудованих стилів заголовка (як якщо наведено перемикач \O). Доступний TOC перемикачі, які підтримуються Aspose.Words Нижче описуються і їх використання. Їх можна розділити на окремі розділи на основі їх типу. Перемикачі в першому розділі визначають те, що вміст включено в TOC і перемикачі в другій секції контролюють зовнішній вигляд TOC. Якщо перемикач не зазначений тут, то він наразі не підтримується. Всі перемикачі будуть підтримуватися в наступних версіях. Ми додаємо підтримку з кожним випуском.

Вимикачи позначки входу

Перемикач Опис
Heading Styles
(\O перемикач)

Цей перемикач визначає, що TOC повинен бути вбудованим заголовком стилів. У Microsoft Word вони визначаються заголовуванням 1 - Заголовок 9. У Aspose.Words ці фасони представлені відповідною студнеобразующою анумуляції. Цей енкодер є локальним незалежним ідентифікатором стилю, наприклад StyleIdentifier.Heading1 являє собою заголовок 1 стиль. Використання цього форматування та властивостей стилю можна отримати з колекції стилів документа. Клас відповідного стилю можна отримати з Document.Styles збір за допомогою індексованого майна типу StyleIdentifier.

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

Будь-який контент, відформатований цими стилями, включеними до таблиці змісту. Рівень заголовка визначить відповідний ієрархічний рівень входу в ТОК. Наприклад, абзац з заголовуванням 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)

Цей параметр диктує, які вирівняти цей пункт слід розглядати в ієрархії документа. Це зазвичай використовується практика, яка використовується для легкого структурування макета документа. Цей ієрархія можна переглянути, змінивши на зовнішній вигляд Microsoft Wordй Подібно до заголовків стилів, може бути 1 – 9 рівнів, крім рівня "Body Text". Зовнішні рівні 1 - 9 з'явиться в `TOC` у відповідному рівні ієрархії
Будь-який вміст з рівнем контуру або встановленим в стилі абзацу або безпосередньо на сам абзац включений в 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>

використовувати стиль вмісту з CustomHeading1 як рівень 1 вмісту в `TOC` і CustomHeading2 як рівень 2.

| | **Use TC Fields**
*(\F і \L перемикачі) * |

У старших версіях Microsoft Word, єдиний спосіб побудови `TOC` було використання полів ТК. Ці поля вставляють приховані в документ, навіть якщо відображаються коди поля. Вони включають текст, який повинен відображатися в записі і `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 в `TOC` використовується для позначення, що поля TC повинні бути використані як записи. Перемикач самостійно без додаткового ідентифікатора означає, що будь-яке поле TC в документі буде включено. Будь-який додатковий параметр, часто один лист, спроектуватиме, що тільки поля ТК, які мають відповідні \f перемикач буде включений в ТЗ. Наприклад *
<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} комплект вимикачів. Це:

- *\F - Передбачено вище. Ім'я *

- *\L - Дефіни, які рівні в `TOC` це поле TC з'явиться в. Р `TOC` який використовує цей самий перемикач буде включати в себе це поле TC, якщо він знаходиться в зазначеному діапазоні. Ім'я *

- _\N - Номер сторінки для цього `TOC` запис не відображається. Приклад коду як вставити поля TC можна знайти в наступному розділі.

|

Зовнішній вигляд Схожі перемикачі

Перемикач Опис
Omit Page Numbers
(\N перемикач)

Цей перемикач використовується для приховувати номери сторінок для певних рівнів TOC. Наприклад, можна визначити

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

і номери сторінок на записах рівнів 3 і чотири будуть приховані разом з лідерами точок (якщо є будь-який). Щоб вказати лише один рівень, необхідно використовувати діапазон, наприклад, "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 перемикач)* |

Цей перемикач визначає, що `TOC` записи вставляються як гіперпосилання. При перегляді документа в Microsoft Word ці записи все ще з'являються як звичайний текст всередині `TOC` але є гіперпосилання і, таким чином, може бути використаний для навігації в положення оригінального входу в документ за допомогою *Ctrl + клацніть лівою кнопкою миші * в 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 перемикач)* |

Цей перемикач дозволяє відокремити заголовок запису та номер сторінки, щоб легко змінюватися в ТЗ. Сепаратор повинен бути вказаний після цього вимикача і закривається в мовних знаках.
Приміряти, що документується в документації 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 перемикач)* |

За допомогою цього перемикача буде вказати, що будь-які записи, які мають символ вкладки, наприклад, заголовок, який має вкладку в кінці лінії, будуть зберігатися як правильний символ вкладки при популуванні 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 перемикач)* |

Подібно до перемикача вище, цей перемикач визначає, що заголовки, що простягаються на декількох лініях (надаючи нові символи рядків не окремі абзаци) будуть збережені, як вони знаходяться в створеному TOC. Наприклад, заголовок, яка полягає в тому, щоб поширюватися через декілька рядків, може використовувати новий символ лінії (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 на поточному положенні DocumentBuilder за викликом InsertField метод і вказати назву поля як “TC” разом з будь-якими перемикачами, які необхідні.

Приклад наступного коду показує, як вставити TC поле в документ, використовуючи DocumentBuilder:

Нерідко конкретна лінія тексту позначена для TOC і позначений TC поле. Простий спосіб зробити це в Microsoft Word – виділити текст та прес ALT+SHIFT+O. Це автоматично створює TC поле за допомогою вибраного тексту. Така ж техніка може бути виконана за допомогою коду. Введіть номер мобільного, який Ви вказали при укладаннi договору з ідентифікації. TC поле в одному положенні з текстом. Код ґрунтується на тій же техніці, яка використовується в статті.

Приклад коду показує, як знайти і вставити TC поле в тексті в документі:

Змінено таблицю змісту

Форматування записів у форматі TOC не використовуйте оригінальні стилі позначених записів, замість кожного рівня відформатовано за допомогою еквівалента TOC стиль. Приклад першого рівня в TOC відформатований з ТЦ1 стиль, другий рівень відформатований з ТЦ2 стиль і так далі. Це означає, що змінити зовнішній вигляд TOC ці стилі повинні бути змінені. У Aspose.Words Ці стилі представлені незалежною StyleIdentifier.TOC1 через StyleIdentifier.TOC9 і можна отримати з Styles збір за допомогою цих ідентифікаторів.

Після відповідного стилю документа було отримано форматування для цього стилю. Будь-які зміни до цих стилів будуть автоматично відображені на TOC в документі.

У першому рівні використовується наступний приклад коду TOC стиль:

Також корисно відзначити, що будь-який прямий форматування абзацу (визначено на самому абзацу і не в стилі) позначений, щоб бути включеним TOC буде скопійовано в записі в TOC. Наприклад, якщо заголовок 1 стиль використовується для позначення вмісту для TOC і цей стиль має сміливе форматування, в той час як абзац також має italic форматування безпосередньо на нього. В результаті TOC запис не буде сміливим, оскільки це частина форматування стилів, проте це буде italic, оскільки це безпосередньо відформатовано на пункті.

Ви також можете керувати форматуванням сепараторів, що використовуються між кожним записом та номером сторінки. За замовчуванням це пунктирна лінія, яка поширюється на номер сторінки, використовуючи символ вкладки та праву зупинку вкладок, розташовану неподалік від правого поля.

Використання Style клас, отриманий для конкретного TOC рівень, який ви хочете змінити, ви також можете змінити, як це з’являється в документі. Щоб змінити, як це з’являється вперше ParagraphFormat повинен бути викликаний, щоб отримати форматування абзаців для стилю. Від цієї зупинки вкладки можна отримати за допомогою виклику TabStops і відповідна кнопка зупинки змінного струму. Використовуючи цю ж техніку, сам вкладок можна переміщати або видалити всі разом.

Приклад наступного коду показує, як змінити позицію зупинки правої вкладки в TOC пов’язані абзаци:

Видалити таблицю змісту з документа

Зміст може бути видалений з документа шляхом видалення всіх вузлів, знайдених між документом FieldStart і FieldEnd вершини TOC поле. Введіть номер мобільного, який Ви вказали при укладаннi договору з банком - для ідентифікації. Видалення видалення TOC поле простіша, ніж нормальне поле, так як ми не стежимо за в’язаними полями. Зареєструватися FieldEnd вузол типу FieldType.FieldTOC що означає, що ми зустрілися з закінченням поточного TOC. Ця методика може бути використана в цьому випадку, не турбуючись про будь-які незручні поля, як ми можемо припустити, що будь-який належним чином сформований документ не буде повністю непристойний TOC поле в іншому TOC поле.

По-перше FieldStart вузли кожного TOC зібрані та зберігаються. Вказаний TOC потім занурюється так, що всі вузли в межах поля відвідуються і зберігаються. Потім виводяться вузли з документа.

Приклад наступного коду показує, як видалити зазначений TOC з документа:

Витягувати таблицю змісту

Якщо ви хочете витягти таблицю змісту з будь-якого документа Word, можна використовувати наступний зразок коду: