Aspose::Words::Fields::FieldToc класс

FieldToc class

Реализует поле TOC. Чтобы узнать больше, посетите статью документации Working with Fields.

class FieldToc : public Aspose::Words::Fields::Field,
                 public Aspose::Words::Fields::IFieldCodeTokenInfoProvider

Методы

МетодОписание
FieldToc()
get_BookmarkName()Получает имя закладки, которое отмечает часть документа, используемую для построения таблицы.
get_CaptionlessTableOfFiguresLabel()Получает или задает имя идентификатора последовательности, используемого при построении списка иллюстраций, который не включает метку и номер подписи.
get_CustomStyles()Получает список стилей, отличных от встроенных стилей заголовков, которые включаются в оглавление.
get_DisplayResult()Получает текст, представляющий отображаемый результат поля.
get_End() constПолучает узел, представляющий конец поля.
get_EntryIdentifier()Получает строку, которая должна соответствовать типовым идентификаторам включаемых полей TC.
get_EntryLevelRange()Получает диапазон уровней записей оглавления, которые будут включены.
get_EntrySeparator()Получает последовательность символов, разделяющих запись и её номер страницы.
get_FieldEnd() constПолучает узел, представляющий конец поля.
get_FieldStart() constПолучает узел, представляющий начало поля.
get_Format()Получает объект FieldFormat, который предоставляет типизированный доступ к форматированию поля.
get_HeadingLevelRange()Получает диапазон уровней заголовков для включения.
get_HideInWebLayout()Получает, следует ли скрывать табуляцию и номера страниц в режиме веб‑разметки.
get_InsertHyperlinks()Получает, следует ли делать записи оглавления гиперссылками.
get_IsDirty()Получает или задает, является ли текущий результат поля более некорректным (устаревшим) из‑за других изменений, внесённых в документ.
get_IsLocked()Получает или задает, заблокировано ли поле (не должно пересчитывать свой результат).
get_LocaleId()Получает или задает LCID поля.
get_PageNumberOmittingLevelRange()Получает диапазон уровней записей оглавления, из которых следует опустить номера страниц.
get_PrefixedSequenceIdentifier()Получает или задает идентификатор последовательности, к номеру страницы записи которой следует добавить префикс.
get_PreserveLineBreaks()Получает, следует ли сохранять символы новой строки внутри записей таблицы.
get_PreserveTabs()Получает, следует ли сохранять табуляцию внутри записей таблицы.
get_Result()Получает или задает текст, находящийся между разделителем поля и его концом.
get_Separator()Получает узел, представляющий разделитель поля. Может быть null.
get_SequenceSeparator()Получает или задает последовательность символов, используемую для разделения номеров последовательностей и номеров страниц.
get_Start() constПолучает узел, представляющий начало поля.
get_TableOfFiguresLabel()Получает или задает имя идентификатора последовательности, используемого при построении списка иллюстраций.
virtual get_Type() constПолучает тип поля Microsoft Word.
get_UseParagraphOutlineLevel()Получает, следует ли использовать примененный уровень структуры абзаца.
GetFieldCode()Возвращает текст между началом поля и разделителем поля (или концом поля, если разделитель отсутствует). Включены как код поля, так и результат дочерних полей.
GetFieldCode(bool)Возвращает текст между началом поля и разделителем поля (или концом поля, если разделитель отсутствует).
GetType() const override
Is(const System::TypeInfo&) const override
virtual Remove()Удаляет поле из документа. Возвращает узел сразу после поля. Если конец поля является последним дочерним элементом его родительского узла, возвращает родительский абзац. Если поле уже удалено, возвращает null.
set_BookmarkName(const System::String&)Устанавливает имя закладки, которое отмечает часть документа, используемую для построения таблицы.
set_CaptionlessTableOfFiguresLabel(const System::String&)Сеттер для Aspose::Words::Fields::FieldToc::get_CaptionlessTableOfFiguresLabel.
set_CustomStyles(const System::String&)Устанавливает список стилей, отличных от встроенных стилей заголовков, которые включаются в оглавление.
set_EntryIdentifier(const System::String&)Устанавливает строку, которая должна соответствовать типовым идентификаторам включаемых полей TC.
set_EntryLevelRange(const System::String&)Устанавливает диапазон уровней записей оглавления, которые будут включены.
set_EntrySeparator(const System::String&)Устанавливает последовательность символов, разделяющих запись и её номер страницы.
set_HeadingLevelRange(const System::String&)Устанавливает диапазон уровней заголовков для включения.
set_HideInWebLayout(bool)Устанавливает, следует ли скрывать табуляцию и номера страниц в режиме веб‑разметки.
set_InsertHyperlinks(bool)Устанавливает, следует ли делать записи оглавления гиперссылками.
set_IsDirty(bool)Сеттер для Aspose::Words::Fields::Field::get_IsDirty.
set_IsLocked(bool)Сеттер для Aspose::Words::Fields::Field::get_IsLocked.
set_LocaleId(int32_t)Сеттер для Aspose::Words::Fields::Field::get_LocaleId.
set_PageNumberOmittingLevelRange(const System::String&)Устанавливает диапазон уровней записей оглавления, из которых опускаются номера страниц.
set_PrefixedSequenceIdentifier(const System::String&)Сеттер для Aspose::Words::Fields::FieldToc::get_PrefixedSequenceIdentifier.
set_PreserveLineBreaks(bool)Устанавливает, сохранять ли символы новой строки внутри записей таблицы.
set_PreserveTabs(bool)Устанавливает, сохранять ли табуляцию внутри записей таблицы.
set_Result(const System::String&)Сеттер для Aspose::Words::Fields::Field::get_Result.
set_SequenceSeparator(const System::String&)Сеттер для Aspose::Words::Fields::FieldToc::get_SequenceSeparator.
set_TableOfFiguresLabel(const System::String&)Сеттер для Aspose::Words::Fields::FieldToc::get_TableOfFiguresLabel.
set_UseParagraphOutlineLevel(bool)Устанавливает, использовать ли применённый уровень структуры абзаца.
static Type()
Unlink()Выполняет отсоединение поля.
Update()Выполняет обновление поля. Вызывает исключение, если поле уже обновляется.
Update(bool)Выполняет обновление поля. Выбрасывает исключение, если поле уже обновляется.
UpdatePageNumbers()Обновляет номера страниц для элементов в этом оглавлении.

Примеры

Показывает, как заполнить поле TOC записями, используя поля SEQ.

auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);

// Поле TOC может создавать запись в своей таблице содержимого для каждого найденного в документе поля SEQ.
// Каждая запись содержит абзац, включающий поле SEQ, и номер страницы, на которой появляется поле.
auto fieldToc = System::ExplicitCast<Aspose::Words::Fields::FieldToc>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldTOC, true));

// Поля SEQ отображают счётчик, который увеличивается на каждом поле SEQ.
// Эти поля также поддерживают отдельные счётчики для каждой уникальной именованной последовательности.
// идентифицировано свойством "SequenceIdentifier" поля SEQ.
// Используйте свойство "TableOfFiguresLabel", чтобы задать основную последовательность для оглавления.
// Теперь это оглавление будет создавать записи только из полей SEQ, у которых свойство "SequenceIdentifier" установлено в "MySequence".
fieldToc->set_TableOfFiguresLabel(u"MySequence");

// Мы можем задать другую последовательность полей SEQ в свойстве "PrefixedSequenceIdentifier".
// Поля SEQ из этой префиксной последовательности не будут создавать записи в оглавлении.
// Каждая запись оглавления, созданная из поля SEQ основной последовательности, теперь также будет отображать счётчик, который
// префиксная последовательность находится на текущем значении в основном поле SEQ, которое создало запись.
fieldToc->set_PrefixedSequenceIdentifier(u"PrefixSequence");

// Каждая запись оглавления будет отображать счётчик префиксной последовательности сразу слева
// от номера страницы, на которой находится поле SEQ основной последовательности.
// Мы можем указать пользовательский разделитель, который будет отображаться между этими двумя числами.
fieldToc->set_SequenceSeparator(u">");

ASSERT_EQ(u" TOC  \\c MySequence \\s PrefixSequence \\d >", fieldToc->GetFieldCode());

builder->InsertBreak(Aspose::Words::BreakType::PageBreak);

// Существует два способа использования полей SEQ для заполнения этого оглавления.
// 1 - Вставка поля SEQ, принадлежащего префиксной последовательности оглавления:
// Это поле увеличит счётчик последовательности SEQ для "PrefixSequence" на 1.
// Поскольку это поле не принадлежит основной последовательности, идентифицированной
// свойством "TableOfFiguresLabel" оглавления, оно не будет отображаться как запись.
auto fieldSeq = System::ExplicitCast<Aspose::Words::Fields::FieldSeq>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldSequence, true));
fieldSeq->set_SequenceIdentifier(u"PrefixSequence");
builder->InsertParagraph();

ASSERT_EQ(u" SEQ  PrefixSequence", fieldSeq->GetFieldCode());

// 2 - Вставка поля SEQ, принадлежащего основной последовательности оглавления:
// Это поле SEQ создаст запись в оглавлении.
// Запись оглавления будет содержать абзац, в котором находится поле SEQ, и номер страницы, на которой оно расположено.
// Эта запись также будет отображать счётчик, на котором сейчас находится префиксная последовательность,
// отделённый от номера страницы значением свойства SeqenceSeparator оглавления.
// Счётчик "PrefixSequence" равен 1, это поле SEQ основной последовательности находится на странице 2,
// а разделитель — ">", поэтому запись будет отображать "1>2".
builder->Write(u"First TOC entry, MySequence #");
fieldSeq = System::ExplicitCast<Aspose::Words::Fields::FieldSeq>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldSequence, true));
fieldSeq->set_SequenceIdentifier(u"MySequence");

ASSERT_EQ(u" SEQ  MySequence", fieldSeq->GetFieldCode());

// Вставьте страницу, увеличьте префиксную последовательность на 2 и затем вставьте поле SEQ, чтобы создать запись в оглавлении.
// Префиксная последовательность теперь равна 2, а поле SEQ основной последовательности находится на странице 3,
// поэтому запись оглавления будет отображать "2>3" в своём номере страницы.
builder->InsertBreak(Aspose::Words::BreakType::PageBreak);
fieldSeq = System::ExplicitCast<Aspose::Words::Fields::FieldSeq>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldSequence, true));
fieldSeq->set_SequenceIdentifier(u"PrefixSequence");
builder->InsertParagraph();
fieldSeq = System::ExplicitCast<Aspose::Words::Fields::FieldSeq>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldSequence, true));
builder->Write(u"Second TOC entry, MySequence #");
fieldSeq->set_SequenceIdentifier(u"MySequence");

doc->UpdateFields();
doc->Save(get_ArtifactsDir() + u"Field.TOC.SEQ.docx");

См. также