Робота з Змістом
Часто ви будете працювати з документами, що містять таблицю змісту (TOC). Використання Aspose.Words Ви можете вставляти свій власний таблицю змісту або повністю перебудувати існуючий таблицю змісту в документі за допомогою всього декількох рядків коду.
У статті описано, як працювати з таблицею поля контенту та демонструє:
- Як вставити бренд новий TOC.
- Оновлення нових або існуючих TOC в документі.
- Вкажіть перемикачі для керування форматуванням та загальною структурою ТЗ.
- Як змінити стилі і зовнішній вигляд таблиці змісту.
- Як видалити всю
TOC
поле разом з усіма записами з документа.
Вставте таблицю змісту программатично
Ви можете вставити TOC
(табл. змісту) поле в документ на поточному положенні за викликом InsertTableOfContents метод.
Таблиця змісту у документі Word може бути побудована кількома способами і форматовано за допомогою різних варіантів. Увімкнено поле, що ви передаєте до методу управління способом, таблиця побудована і відображається у вашому документі.
Перемикачі за замовчуванням, які використовуються в TOC
вставки Microsoft Word Р **""\o “1-3 \h \z \u”**й Описи цих вимикачів, а також перелік підтримуваних перемикачів можна знайти пізніше в статті. Якщо ви вже маєте документ, що містить аналогічний TOC
ви хочете показати коди поля (ALT+F9) і скопіювати перемикачі безпосередньо з поля.
Приклад коду показує, як вставити таблицю поля змісту в документ:
Приклад коду показує, як вставити таблицю змісту (TOC) в документ, використовуючи стилі заголовків як записи:
Введіть номер мобільного, який Ви вказали при укладаннi договору з банком - для ідентифікації. Про нас DocumentBuilder клас потім використовується для вставки деяких форматів вмісту зразка з відповідними заголовками стилі, які використовуються для позначення вмісту, який буде включений в TOC. Наступні рядки потім з’єднають TOC
шляхом оновлення полів та макету сторінки документа.
TOC
поле, але без видимого вмісту. Це тому, що TOC
поле було вставлено, але ще не заселено, поки воно було оновлено в документі. Додаткова інформація про це розглядається в наступному розділі.
Оновлення таблиці змісту
Aspose.Words дозволяє повністю оновлювати оновлення TOC
лише кілька рядків коду. Це може бути зроблено для того, щоб створити нову вставку TOC
або оновити існуючий TOC
після внесення змін до документа.
Для оновлення потрібно використовувати наступні два способи TOC
поля в документі:
Будь ласка, зверніть увагу, що ці два способи оновлення повинні бути викликані в цьому порядку. Якщо перевернути таблицю змісту буде опубліковано, але не буде відображатися номер сторінки. Будь-яка кількість різних TOC можна оновити. Ці методи автоматично оновлюватимуть всі ТЦ, знайдені в документі.
Приклад коду показує, як повністю відновити TOC
поля в документі, викликаючи оновлення поля:
Перший виклик Document.updateFields() побудувати TOC
, > всі текстові записи заселені і TOC
з’являється практично повністю. Єдине, що не вистачає сторінок, які зараз відображаються з “?”.
Другий виклик Document.updatePageLayout() побудувати макет документа в пам’яті. Для збирання номерів сторінок. Виправте номери сторінок, розраховані з цього виклику, потім вставляються в TOC.
Використовуйте перемикачі для контролю таблиці змісту
Як і будь-яке інше поле, TOC
поле може приймати перемикачі, визначені в Полікоді, які контролює, як будується таблиця вмісту. Деякі перемикачі використовуються для контролю, які записи включені і на якому рівні, а інші використовуються для контролю зовнішнього вигляду TOC. Вимикачі можуть поєднуватися між собою, щоб забезпечити складний стіл контенту, який буде виготовлений.
За замовчуванням, ці перемикачі вище включені при вставці за замовчуванням TOC
у документі. Р TOC
без перемикачів буде включати вміст з вбудованих стилів заголовка (як якщо наведено перемикач \O).
Доступний TOC
перемикачі, які підтримуються Aspose.Words Нижче описуються і їх використання. Їх можна розділити на окремі розділи на основі їх типу. Перемикачі в першому розділі визначають те, що вміст включено в TOC
і перемикачі в другій секції контролюють зовнішній вигляд TOC.
Якщо перемикач не зазначений тут, то він наразі не підтримується. Всі перемикачі будуть підтримуватися в наступних версіях. Ми додаємо підтримку кожного релізу.
Вимикачи для маркування записів
Перемикач | Опис |
---|---|
Heading Styles (\O перемикач) |
Цей перемикач визначає, що |
![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)
Будь-який контент, відформатований цими стилями, входить до таблиці змісту. Рівень заголовка визначить відповідний ієрархічний рівень входу в ТОК. Наприклад, абзац з заголовуванням 1 стиль буде розглядатися як перший рівень `TOC` У той час як абзац з заголовуванням 2 буде розглядатися як наступний рівень в ієрархії і так далі.
*(\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)
Цей параметр диктує, які вирівняти цей пункт слід розглядати в ієрархії документа. Це загальноприйнята практика, яка використовується для легко структурування макета документа. Цей ієрархія можна переглянути, змінивши на зовнішній вигляд Microsoft Wordй Подібно до заголовків стилів, може бути 1 – 9 рівнів, крім рівня "Body Text". Зовнішні рівні 1 - 9 з'явиться в `TOC` у відповідному рівні ієрархії
Будь-який вміст з рівнем контуру або встановленим в стилі абзацу або безпосередньо на сам абзац включений в TOC. У Aspose.Words Рівень контуру представлений рівнем контуру `ParagraphFormat.OutlineLevel` майно параграфа вузла. Рівень контуру стилю представлений таким же чином `Style.ParagraphFormat` майно.
Зверніть увагу, що вбудовані стилі заголовка, такі як Heading 1 мають обов'язковий набір рівня в налаштуваннях стилю.
*(\T перемикач)*
|
Цей перемикач дозволить використовувати користувацькі стилі при зборі записів для використання в TOC. Це часто використовується в поєднанні з перемикачем \ O, щоб включати спеціальні стилі разом з вбудованими головуванням стилів в TOC.
Параметри перемикача повинні бути укладені в межах мовних знаків. Багато користувацьких стилів можна включити, для кожного стилю, ім'я повинна бути зазначена за допомогою коми за рівнем, який стиль повинен з'явитися в стилі `TOC` як. Подальші стилі також відокремлюються комою і.
Зареєструватися
{ TOC \o "1-3" \t "CustomHeading1, 1, CustomHeading2, 2"}
використовувати стиль вмісту з CustomHeading1 як рівень 1 вмісту в `TOC` і CustomHeading2 як рівень 2.
| | Використання TC поля*(\F і \L перемикачі) *
|
У старших версіях Microsoft Word, єдиний спосіб побудови `TOC` було використання полів ТЦ. Ці поля вставляють приховані в документ, навіть якщо відображаються коди поля. Вони включають текст, який повинен відображатися в записі і `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 в `TOC` використовується для позначення, що поля TC повинні бути використані як записи. Перемикач самостійно без додаткового ідентифікатора означає, що будь-яке поле TC в документі буде включено. Будь-який додатковий параметр, часто один лист, спроектуватиме, що тільки поля TC, які мають відповідні \f перемикач буде включений в TOC. Наприклад *
{ TOC \f t }
буде містити лише поля TC, такі як
{ TC \f t }
Про нас `TOC` поле також має пов'язаний перемикач, перемикач "\L" визначає, що тільки поле TC з рівнями в зазначеному діапазоні включено.
![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}` комплект вимикачів. Це:
- \F - Виключені вище. Ім'я *
- \L - Дефіни, які рівні в `TOC` це поле TC з'явиться в. Р `TOC` який використовує цей самий перемикач буде включати в себе це поле TC, якщо він знаходиться в зазначеному діапазоні.
- `_\N` - Номер сторінки для цього `TOC` запис не відображається. Приклад коду як вставити поля TC можна знайти в наступному розділі.
|Зовнішній вигляд Схожі перемикачі
Перемикач | Опис |
---|---|
Omit Page Numbers (\N перемикач) |
Цей перемикач використовується для приховувати номери сторінок для певних рівнів TOC. Наприклад, можна визначити |
{TOC \o "1-4" \n "3-4" }
і номери сторінок на записах рівнів 3 і чотири будуть приховані разом з лідерами точок (якщо є будь-який). Щоб визначити лише один рівень, потрібно використовувати діапазон, наприклад, "1-1" виключить лише номери сторінок для першого рівня.
Постачання не діапазону рівня буде примітити номери сторінок для всіх рівнів в 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 перемикач)* |
Цей перемикач визначає, що `TOC` записи вставляються як гіперпосилання. При перегляді документа в Microsoft Word ці записи все ще з'являються як звичайний текст всередині `TOC` але є гіперпосилання і, таким чином, може бути використаний для навігації в положення оригінального входу в документ за допомогою *Ctrl + клацніть лівою кнопкою миші * в 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 перемикач)*
|
Цей перемикач дозволяє відокремити заголовок запису та номер сторінки, щоб легко змінюватися в ТЗ. Сепаратор повинен бути зазначений після цього вимикача і закривається в мовних знаках.
Приміряти, що документується в документації 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 перемикач)* |
За допомогою цього перемикача вкажіть, що будь-які записи, які мають символ вкладки, наприклад, заголовок, що має вкладку в кінці рядка, будуть зберігатися як правильний символ вкладки при популуванні 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 перемикач)*
|
Подібно до перемикача вище, цей перемикач визначає, що заголовки, що простягаються на декількох лініях (з використанням нових символів, не окремих абзаців) будуть збережені як вони в генераному TOC. Наприклад, заголовок, яка полягає в тому, щоб поширюватися через декілька рядків, може використовувати новий символ лінії (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 на поточному положенні DocumentBuilder
за викликом DocumentBuilder.InsertField
метод і вказати назву поля як “TC” разом з будь-якими перемикачами, які необхідні.
Приклад наступного коду показує, як вставити TC
поле в документ, використовуючи DocumentBuilderй
Нерідко для конкретної лінії тексту позначається певна лінія тексту TOC
і позначений TC
поле. Простий спосіб зробити це в MS Word, щоб виділити текст і натисніть ALT+SHIFT+O. Це автоматично створює TC
поле за допомогою вибраного тексту. Така ж техніка може бути виконана за допомогою коду. Введіть номер мобільного, який Ви вказали при укладаннi договору з банком - для ідентифікації TC
поле в одному положенні як текст. Код базується на тій же техніці, яка використовується в статті. Приклад коду показує, як знайти і вставити TC
поле в тексті в документі.
Змінення таблиці змісту
Зміна форматування стилів
Форматування записів у форматі TOC
не використовує оригінальні стилі позначених записів, замість цього кожен рівень відформатований за допомогою еквівалентного TOC
стиль. Наприклад, перший рівень TOC
відформатований з ТЦ1 стиль, другий рівень відформатований з ТЦ2 стиль і так далі. Це означає, що змінити зовнішній вигляд TOC
ці стилі повинні бути змінені. У Aspose.Words ці стилі представлені місцевими StyleIdentifier.TOC1
через StyleIdentifier.TOC9
і можна отримати з Document.Styles
збір за допомогою цих ідентифікаторів.
Після відповідного стилю документа було отримано форматування для цього стилю. Будь-які зміни до цих стилів будуть автоматично відображені в документі.
Приклад коду змінює форматування майна, що використовується в першому рівні TOC
стиль.
Також корисно відзначити, що будь-який прямий форматування абзацу (визначено на самому абзацу і не в стилі) позначений, що буде включений до TOC
буде скопійовано в записі в TOC. Наприклад, якщо заголовок 1 стиль використовується для позначення вмісту для TOC
і цей стиль має сміливе форматування, в той час як абзац також має italic форматування безпосередньо на нього. В результаті TOC
запис не буде сміливим, оскільки це частина форматування стилів, проте це буде italic, оскільки це безпосередньо відформатовано на пункті.
Ви також можете керувати форматуванням сепараторів, що використовуються між кожним входом та номером сторінки. За замовчуванням, це пунктирна лінія, яка поширюється на номер сторінки, використовуючи символ вкладки та праву зупинку вкладок, розташовану поруч з правим запасом.
Використання Style
клас, отриманий для конкретного TOC
рівень, який ви хочете змінити, ви також можете змінити, як це з’являється в документі.
Щоб змінити, як це з’являється вперше Style.ParagraphFormat
повинні бути викликані, щоб отримати форматування абзаців для стилю. Від цього вкладки можна отримати за допомогою виклику ParagraphFormat.TabStops
і відповідна кнопка зупинки змінного струму. Використовуючи цю ж техніку, сам вкладок може бути переміщений або видалений.
Приклад наступного коду показує, як змінити позицію зупинки правої вкладки в TOC
пов’язані абзаци.
Видалити таблицю змісту з документа
Зміст може бути видалений з документа шляхом видалення всіх вузлів, знайдених між документом FieldStart
і FieldEnd вершини TOC
поле.
Код нижче показує це. Видалення видалення TOC
поле простіша, ніж нормальне поле, так як ми не стежимо за в’язаними полями. Замість ми перевіряємо FieldEnd
вузол типу FieldType.FieldTOC
що означає, що ми зустрілися з закінченням поточного TOC. Ця методика може бути використана в цьому випадку, не турбуючись про будь-які незручні поля, як ми можемо припустити, що будь-який належним чином сформований документ не буде повністю непристойний TOC
поле в іншому TOC
поле.
Спочатку FieldStart
вузли кожного TOC
зібрані та зберігаються. Вказаний TOC
потім занурюється так, що всі вузли в межах поля подаються і зберігаються. Потім виводяться вузли з документа. Приклад коду показує, як видалити зазначений код TOC
з документа.
Витягувати таблицю змісту
Якщо ви хочете витягти таблицю змісту з будь-якого документа Word, можна використовувати наступний зразок коду.