Настройте верхние колонтитулы страницы главы

В этом примере показано, как настроить верхние колонтитулы страницы главы, которые сгенерированы генератором отчетов главы API Отчета. Можно настроить верхние колонтитулы страницы главы для PDF и Microsoft® отчеты Word. Пример генерирует отчет для фиктивной компании, ABC Services. Пользовательский заголовок содержит логотип компании, название проекта и отчетную дату.

Логотип компании фиксируется в заголовке. Название проекта и отчетная дата являются динамическими. Они создаются, когда отчет сгенерирован.

Рабочий процесс:

  1. Создайте пользовательский класс генератора отчетов главы.

  2. Измените заголовки в PDF или шаблоне главы Word.

  3. Добавьте свойства в пользовательский класс генератора отчетов для динамического контента в пользовательских заголовках.

  4. Напишите программу отчета, которая использует пользовательский генератор отчетов и задает значения для свойств.

Создайте пользовательский класс генератора отчетов главы

Создайте скелетный класс генератора отчетов главы путем вызова mlreportgen.report.Chapter.customizeReporter метод. Назовите класс Chapter и сохраните его в папке класса в папке пакета.

mlreportgen.report.Chapter.customizeReporter('+abc/@Chapter');

Этот вызов метода также копирует шаблон главы для каждого типа отчета к +abc/@Chapter/resources/templates папка.

Измените заголовки в шаблоне главы для отчета PDF

Чтобы изменить определения заголовка в главе обрабатывают по шаблону для отчета PDF:

  1. Разархивируйте файл шаблона.

  2. Отредактируйте определения заголовка в docpart_templates.html файл с помощью текстового редактора.

  3. Группируйте извлеченные файлы в файл шаблона.

Разархивируйте файл шаблона

Измените текущую папку в папку, которая содержит файл шаблона PDF, default.pdftx и затем разархивируйте файл.

cd('+abc/@Chapter/resources/templates/pdf');
unzipTemplate('default.pdftx');

Извлеченные файлы находятся в папке под названием default.

Скопируйте файл изображения

Скопируйте файл изображения для логотипа компании к default/images папка. Используйте файл изображения, abc_logo.png, присоединенный к этому примеру или вашему собственному файлу изображения.

Отредактируйте определения заголовка

В редакторе MATLAB® или текстовом редакторе, откройте docpart_templates.html, который находится в папке под названием default.

Сделать заголовки тем же самым на всех страницах, в Section1 dptemplate элемент, удалите SectionFirstPageHeader и SectionEvenPageHeader из списка заголовка и шаблонов нижнего колонтитула.

SectionDefaultPageHeader теперь шаблон для всех верхних колонтитулов страницы главы. Найдите SectionDefaultPageHeader шаблон.

<dptemplate name = "SectionDefaultPageHeader">
     <p class="SectionTitleHeader"><StyleRef style-name="SectionTitle1"/></p>
     <hr/>
</dptemplate>

Замените его на эту разметку:

<dptemplate name = "SectionDefaultPageHeader">
    <table width="100%">
        <tr style="border-bottom: 1pt solid #ccc;">              
            <td style="text-align:left; padding-bottom:2pt" valign="bottom">
                <img src="images/abc_logo.png"></img></td>
            <td style="text-align:center; padding-bottom:2pt; font-family:arial;
                font-size: 10pt; font-weight: bold" valign="bottom">
                <hole id="Project">PROJECT</hole></td>
            <td style="text-align:right; padding-bottom:2pt; font-family:arial;
                font-size: 10pt" valign="bottom"><hole id="Date">DATE</hole></td>
         </tr>
     </table>
</dptemplate>

Разметка задает одну строку, таблицу с тремя столбцами с этими характеристиками:

  • Ячейки таблицы содержат логотип компании, отверстие для названия проекта и отверстие для отчетной даты.

  • Содержимое первых, вторых, и третьих ячеек выравнивается по левому краю, выравнивается центром и выровненное по правому краю, соответственно.

  • Дополнение между нижней частью ячейки и содержимым ячейки составляет 2 ПБ.

  • Содержимое ячейки выравнивается с нижней частью ячейки.

  • Шрифтом для текста во второй ячейке является Arial, 10 ПБ, и полужирный. Шрифтом для текста в третьей ячейке является Arial и 10 ПБ.

  • Нижняя граница строки отображается. Таблица не имеет границ, потому что HTML не задает border свойство.

Группируйте извлеченные файлы

Если вы отредактировали docpart_templates.html в редакторе MATLAB закройте файл, прежде чем вы группируете файлы.

Убедитесь, что вы находитесь в +abc/@Chapter/resources/templates/pdf папка, которая содержит папку под названием default. Группируйте файлы в default назад в исходный файл шаблона PDF.

zipTemplate('default.pdftx','default');

Измените заголовки в шаблоне главы для Word Report

В Word шаблон Section1 используется для глав и разделов верхнего уровня. Шаблон находится в галерее Quick Parts.

Изменить заголовки в шаблоне Section1:

  1. Откройте файл шаблона в Word.

  2. Создайте временную копию шаблона Section1 в теле документа шаблона.

  3. Задайте, имеют ли все страницы тот же заголовок.

  4. Отредактируйте заголовки.

  5. Сохраните модифицированный шаблон Section1 в галерею Quick Parts.

  6. Удалите содержимое из тела документа шаблона и сохраните файл шаблона.

Откройте файл шаблона

Перейдите к +abc/@Chapter/resources/templates/docx.

Откройте файл шаблона при помощи одного из этих методов:

  • В MATLAB, в панели Текущей папки, щелкают правой кнопкой по файлу шаблона и нажимают Open Outside MATLAB.

  • За пределами MATLAB щелкните правой кнопкой по файлу шаблона и нажмите Open.

Не дважды кликайте файл шаблона Word, чтобы открыть его. Двойной клик по файлу открывает файл документа Word, который использует шаблон.

Документ шаблона открывается к пустой странице.

Отобразите символы форматирования

Чтобы сделать символы абзаца и символы форматирования видимыми, на вкладке Home, кликают по кнопке Show/Hide.

Скопируйте шаблон Section1 в документ шаблона

На вкладке Insert, в текстовой группе, нажимают Quick Parts, и затем кликают по базовому блоку Section1.

В документе шаблона Word вставляет копию шаблона Section1 и фиктивного раздела Section2. Фиктивный раздел проигнорирован, когда вы генерируете отчет.

Курсор находится в фиктивном Section2. Прокрутите до шаблона Section1. Чтобы открыть заголовок, дважды кликните его.

Укажите, что все страницы имеют тот же заголовок

Под Инструментами Заголовка и Нижнего колонтитула, на вкладке Design, снимают флажок Different First Page.

Заголовок для страниц, которые следуют за первой страницей, копируется в первый верхний колонтитул страницы.

Добавьте таблицу в заголовок

На вкладке Insert Нажмите Table. Переместите указатель через сетку, пока вы не подсветите три столбца и одну строку.

Удалите сообщение Error! No text of specified style in document и абзац, который содержит его.

Горизонтальное правило от исходного заголовка является нижней границей абзаца. Чтобы сделать его невидимым, кликните по абзацу и затем, на вкладке Home, в группе Абзаца, кликните по стрелке вправо Границ и затем нажмите No Border.

Добавьте логотип в первую ячейку таблицы

Скопируйте и вставьте логотип компании в первую ячейку таблицы. Используйте присоединенный abc_logo.png файл или ваш собственный файл изображения.

Добавьте отверстия для проекта и даты

Если лента Разработчика не доступна, нажмите File> Options, и затем нажмите Customize Ribbon. Под Настраивают Ленту, выбирают Developer.

На вкладке Developer нажмите Design Mode так, чтобы вы видели метки отверстия с тегом заголовка, когда вы создаете отверстие.

Во второй ячейке добавьте несколько пробелов перед меткой записи так, чтобы отверстие, которое вы добавляете, было встроенным отверстием.

Щелкните перед пробелами.

Кликните по Кнопке управления Содержимого Обогащенного текста. Содержимое обогащенного текста управляет отображениями.

Удалите пробелы, которые вы добавили.

Замените текст в управлении с текстом, который идентифицирует отверстие, например, Project Name.

На вкладке Developer нажмите Properties.

В диалоговом окне Content Control Properties:

  • в поле Title введите Project.

  • В Поле метки введите Hole.

Выберите Use стиль, чтобы отформатировать текст, введенный в пустой флажок управления. Затем нажмите New Style.

В диалоговом окне Create New Style from Formatting введите Project в Поле имени. Для форматирования задайте Arial, 10 ПБ. Нажмите кнопку Bold. Нажать ОК.

В диалоговом окне Content Control Properties нажать ОК.

Добавьте встроенное отверстие для даты в третьей ячейке. Используйте шаги, что вы раньше добавляли отверстие во вторую ячейку.

  1. Добавьте несколько пробелов перед меткой записи.

  2. Щелкните перед пробелами.

  3. Кликните по Кнопке управления Содержимого Обогащенного текста.

  4. Удалите пробелы, которые вы добавили.

  5. Замените текст в управлении с текстом, который идентифицирует отверстие, например, Отчетную дату.

  6. На вкладке Developer нажмите Properties. В диалоговом окне Content Control Properties введите Date в поле Title и Hole в Поле метки.

  7. Выберите Use стиль, чтобы отформатировать текст, введенный в пустой флажок управления. Затем нажмите New Style.

  8. В диалоговом окне Create New Style from Formatting введите ReportDate в Поле имени. Для форматирования задайте Arial and10pt.

Таблица похожа:

Задайте нижнее поле ячейки таблицы

Задавать нижнее поле ячейки:

  1. Выберите и щелкните правой кнопкой по таблице.

  2. Нажмите Table Properties, затем на вкладке Table, нажмите Options.

  3. В Табличном Окне параметров, под полями ячейки Default, в поле Bottom, вводят 2 ПБ.

Выровняйте содержимое ячейки

Выравнивание по левому краю логотип в первой ячейке. Сосредоточьте отверстие в третьей ячейке. Выравнивание по правому краю отверстие в третьей ячейке.

Выровнять содержимое ячейки:

  1. Выберите изображение или отверстие в таблице.

  2. На вкладке Home, в группе Абзаца, нажимают Align Left, Center или кнопку Align Right.

Сделайте границы верхней части и стороны таблицы невидимыми

Отобразить только нижнюю границу таблицы:

  1. Выберите таблицу.

  2. Под Табличными Инструментами, на вкладке Design, нажимают Borders> No Border.

  3. Нажмите Borders> Bottom Border.

  4. Установите вес линии на 1 ПБ.

Сохраните пользовательский шаблон

Закройте заголовок путем двойного клика по странице за пределами заголовка.

Чтобы выбрать все содержимое в шаблоне, нажмите Ctrl+A.

На вкладке Insert нажмите Quick Parts, и затем нажмите Save Selection to Quick Parts Gallery.

В диалоговом окне Create New Building Block, в Поле имени, вводят Section1. Устройте Галерею на Quick Parts, Категория к mlreportgen, и Сохраните в принять значение по умолчанию. Нажать ОК.

Когда вы видите сообщение Do you want to redefine the building block entry?, нажать кнопку Да.

Сохраните файл шаблона

Это - лучшая практика удалить содержимое из тела документа шаблона, прежде чем вы сохраните файл шаблона.

С выбранным содержимым нажмите Delete.

Чтобы скрыть символы форматирования, на вкладке Home, в группе Абзаца, кликают по нажатию кнопки кнопка Show/Hide.

Сохраните файл шаблона.

Добавьте свойства в пользовательский класс генератора отчетов

Поскольку пользовательский заголовок имеет отверстия для динамического контента, необходимо задать свойства для отверстий.

Перейдите к +abc/@Chapter папка.

В файле определения класса, Chapter.m, добавьте свойства, которые соответствуют Project и Date отверстия в заголовке. Замените пустой properties разделите с:

    properties 
        Project = ''
        Date = ''
    end     

Сохраните файл класса.

Сгенерируйте отчет Используя пользовательский генератор отчетов главы

Когда вы генерируете отчет, создаете генератор отчетов главы из abc.Chapter класс. Присвойте значения свойствам, которые соответствуют отверстиям в заголовке.

Прежде, чем запустить следующий код, перейдите к папке, которая содержит +abc папка. В качестве альтернативы, чтобы добавить папку, которая содержит +abc папка к пути MATLAB:

  1. В Панели инструментов MATLAB, на вкладке Home, в группе Среды, нажимают Set Path.

  2. В диалоговом окне Set Path нажмите Add Folder.

  3. В Добавить Папке к диалоговому окну Path кликните по папке и затем нажмите Select Folder.

Вы не можете добавить пакеты в путь MATLAB. Добавьте папку, которая содержит папку пакета.

Сгенерируйте отчет PDF

import mlreportgen.dom.*
import mlreportgen.report.*

report = Report("Consulting Report","pdf");
chapter = abc.Chapter();
chapter.Project = "Control Systems Consulting";
chapter.Date = date;
chapter.Title="Overview";
add(chapter,"Chapter content goes here.");
add(report,chapter);
close(report);
rptview(report);

Сгенерируйте Word Report

import mlreportgen.dom.*
import mlreportgen.report.*

report = Report("Consulting Report","docx");
chapter = abc.Chapter();
chapter.Project = "Control Systems Consulting";
chapter.Date = date;
chapter.Title="Overview";
add(chapter,"Chapter content goes here.");
add(report,chapter);
close(report);
rptview(report);

Смотрите также

| |

Похожие темы