Можно добавить оглавление в отчет с помощью mlreportgen.report.TableOfContents
класс. Этот предопределенный класс автоматически добавляет отформатированное оглавление, которое содержит заголовки отчета в ваш отчет. Это намного легче и более эффективно использовать этот класс вместо того, чтобы использовать Объекты DOM, чтобы создать оглавление. Для получения информации и примеры, смотрите mlreportgen.report.TableOfContents
.
Альтернативно, с помощью Объектов DOM, можно создать оглавление в программе отчета, или можно использовать шаблон, чтобы задать TOC. Чтобы создать TOC программно, добавьте mlreportgen.dom.TOC
возразите против своего отчетного документа.
Используя шаблон гарантирует, что все программы отчета, которые используют тот шаблон, создают тот же тип TOC. Кроме того, с шаблоном вы обновляете TOC только в одном месте если ваши изменения форматирования.
Если вы используете шаблон, вы можете также:
Включайте ссылку TOC в свой шаблон Word или в ваш пакет шаблона HTML или PDF (root.html
).
Создайте шаблон части документа для TOC и вставьте часть документа программно.
Или Используя подход, ваша программа отчета должна создать направляющиеся объекты, которые задают числовой уровень или объекты абзаца, которые задают уровень схемы. Генератор TOC использует содержимое с информацией об уровне, чтобы задать структуру.
API DOM поддерживает автоматическую генерацию оглавления документа. Включить автоматическую генерацию TOC:
Используйте Paragraph
или заголовок объектов (Heading
, Heading1
, и так далее) в вашем документе, чтобы задать заголовки раздела. Если вы используете Paragraph
объект для заголовка, необходимо установить OutlineLevel
абзаца свойство к соответствующему значению, например, 1 для главы или другого заголовка верхнего уровня.
Вставьте заполнителя TOC в свой документ, где вы хотите сгенерировать TOC. Можно вставить заполнителя TOC программно или в шаблоне для документа.
Чтобы создать заполнителя TOC программно, добавьте mlreportgen.dom.TOC
возразите, где вы хотите сгенерировать TOC. Можно задать количество уровней, чтобы включать в TOC и тип лидера. Значениями по умолчанию являются три уровня и точечный лидер. Этот пример использует два уровня и точечного лидера.
import mlreportgen.dom.*; d = Document('mydoc','pdf'); open(d); title = append(d,Paragraph('My TOC Document')); title.Bold = true; title.FontSize = '28pt'; toc = append(d,TOC(2)); toc.Style = {PageBreakBefore(true)}; h1 = append(d,Heading1('Chapter 1')); h1.Style = {PageBreakBefore(true)}; p1 = append(d,Paragraph('Hello World')); h2 = append(d,Heading2('Section 1.1')); h2.Style = {PageBreakBefore(true)}; p2 = append(d,Paragraph('Another page')); h3 = append(d,Heading3('My Subsection 1.1.a')); p3 = append(d, Paragraph('My Level 3 Heading Text')); close(d); rptview(d.OutputPath);
Можно использовать Word, чтобы вставить объект ссылки Word TOC, одним словом, документ или шаблон части документа. Word заменяет ссылку TOC на автоматически сгенерированный TOC, когда это обновляет документ.
Сгенерировать оглавление в отчете Word DOM с помощью шаблона, содержащего ссылку TOC:
Чтобы задать где в отчете сгенерировать TOC, создайте ссылку оглавления в шаблоне Word. Смотрите Создают Word Table of Contents Reference.
Установите уровни схемы глав секций, что вы хотите появиться в оглавлении. Смотрите Уровни Схемы Набора глав секций.
Обновите сгенерированный документ. Смотрите Обновление TOC, одним словом, Отчет.
Откройте шаблон в Word.
Щелкните, где вы хотите создать оглавление.
На вкладке References нажмите Table of Contents.
Выберите параметр формата TOC, чтобы сгенерировать оглавление. Например, выберите параметр формата Built-In. TOC появляется.
Сохраните шаблон.
Примечание
Если вы хотите использовать часть документа, чтобы вставить TOC, вставьте ссылку TOC в шаблон для части документа. Удалите экземпляр из шаблона, прежде чем вы сохраните. Смотрите Создают Библиотеку шаблонов Части Документа Microsoft Word и Вставляют Заполнителя TOC Программно Используя Часть Документа.
Необходимо обновить документ Word, содержащий ссылку TOC, чтобы сгенерировать TOC. В системах Windows®, API DOM rptview
команда использует Word, чтобы обновить документ Word, который это отображает. Если вы открываете документ Word непосредственно, например, документ, сгенерированный API DOM в системе кроме Windows, необходимо обновить TOC.
В шаблоне Word выберите ссылку TOC.
На вкладке References нажмите Update Table.
В диалоговом окне Update Table of Contents выберите Update entire table и нажмите OK.
Когда вы используете PDF или шаблон HTML, чтобы добавить TOC, вы можете:
Включайте заполнителя оглавления в основной шаблон (root.html
) в вашем пакете шаблона.
Включайте заполнителя TOC в шаблон части документа.
Создать оглавление в HTML или отчет PDF с помощью шаблона части документа:
Задайте шаблон части документа, который включает заполнителя TOC.
Программно вставьте часть документа в свой отчет.
Используйте Paragraph
или заголовок объектов (Heading
, Heading1
, и так далее), чтобы задать заголовки вашего отчета. Если вы используете Paragraph
объект для заголовка, необходимо установить его OutlineLevel
свойство к соответствующему значению.
Чтобы создать или изменить шаблон части документа для TOC, используйте код в этой форме:
<dptemplate name="ReportTOC"> <TOC number-of-levels ="3" leader-pattern="dots" /> </dptemplate>
Вы можете:
Замените ReportTOC
с именем вы предпочитаете
Установите number-of-levels
к количеству уровней заголовков вы хотите включать в TOC
Установите leader-pattern
к dots
или к spaces
Для примера смотрите PDF и Части Документа HTML и Отверстия.
Используйте DocumentPart
класс, чтобы вставить экземпляр части документа, которая содержит заполнителя TOC. Если вы задаете шаблон части документа в своем шаблоне, включаете имя пакета шаблона, когда вы задаете объект документа. Например:
d = Document('MyReport','html','MyTemplate');
Этот код использует предоставленную часть документа ReportTOC
в шаблоне по умолчанию, чтобы сгенерировать оглавление.
import mlreportgen.dom.*; d = Document('MyReport','pdf'); append(d,'My Report'); append(d,DocumentPart(d,'ReportTOC')); append(d,Heading1('Chapter 1')); append(d,Heading2('Section 1')); close(d); rptview(d.OutputPath);
Совет
Используйте переменную, присвоенную Document
объект в DocumentPart
синтаксис к использованию шаблон части документа сопоставил с объектом документа:
append(d,DocumentPart(d,'ReportTOC'));
Если вы используете этот синтаксис, вы не должны вызывать шаблон и задавать тип документа, когда вы обращаетесь к части документа. Этот подход упрощает ваш код и генерирует отчет более эффективно.
Чтобы сгенерировать оглавление в вашем отчете, ваша программа должна установить уровни схемы глав секций, которых вы хотите в содержимом. Уровень схемы является свойством формата абзаца, которое задает, ли и в том, какой уровень содержимое абзаца появляется в оглавлении. Например, если абзац имеет уровень схемы 1, содержимое появляется в верхнем уровне сгенерированного оглавления. Можно задать до девяти уровней схемы.
Чтобы установить уровень схемы абзацев, используйте один из этих подходов.
Можно использовать стили, заданные в шаблоне отчета, чтобы установить уровень схемы абзаца. Word по умолчанию документы включают набор стилей, Направляясь 1, Направляясь 2, и так далее, которые задают уровни схемы. Ваша программа может использовать эти встроенные стили, чтобы задать для этих голов, чтобы появиться в TOC. Этот пример использует заданные шаблоном стили, чтобы установить уровни схемы глав секций и принимает что шаблон MyTemplate
включает ссылку TOC.
import mlreportgen.dom.*; d = Document('MyReport','docx','MyTemplate'); append(d,Paragraph('Chapter 1','Heading 1')); append(d,Paragraph('Section 1','Heading 2')); close(d); rptview(d.OutputPath); % Updates the TOC
Можно также использовать Word или редактор HTML, чтобы задать собственные стили заголовка и затем использовать их, чтобы сгенерировать отчет.
Можно использовать объекты формата, чтобы установить уровни схемы. Этот пример принимает что шаблон MyTemplate
включает ссылку TOC.
import mlreportgen.dom.*; d = Document('MyReport','docx','MyTemplate'); h1 = {FontFamily('Arial'),FontSize('16pt'),OutlineLevel(1)}; h2 = {FontFamily('Arial'),FontSize('14pt'),OutlineLevel(2)}; p = append(d,Paragraph('Chapter 1')); p.Style = h1; p = append(d,Paragraph('Section 1')); p.Style = h2; close(d); rptview(d.OutputPath); % Updates the TOC
Можно использовать mlreportgen.dom.Heading1
объект (и Heading2
, Heading3
, и так далее), чтобы задать уровни схемы. Heading1
объект является абзацем, конструктор которого задает его уровень схемы. Можно использовать Heading1
возразите один или с основанными на шаблоне стилями или основанными на объектах форматом стилями. Этот пример принимает что шаблон MyTemplate
включает ссылку TOC.
import mlreportgen.dom.*; d = Document('MyReport','docx','MyTemplate'); h1 = {FontFamily('Arial'),FontSize('16pt')}; h2 = {FontFamily('Arial'),FontSize('14pt')}; h = append(d,Heading1('Chapter 1')); h.Style = h1; h = append(d,Heading2('Section 1')); p.Style = h2; close(d); rptview(d.OutputPath); % Updates the TOC
В HTML и отчетах PDF, Heading1
и Heading2
объекты генерируют элементы HTML h1
и h2
. При помощи объектов Heading1
, Heading2
, и так далее можно гарантировать, что отчет использует стили по умолчанию для заголовков.