В этом примере показано, как настроить заголовки страниц глав, сгенерированные Report API chapter reporter. Можно настроить заголовки страниц глав для отчетов PDF и Microsoft ® Word. Пример генерирует отчет для фиктивной компании ABC Services. Пользовательский заголовок содержит логотип компании, имя проекта и дату отчета.
Логотип компании фиксирован в заголовке. Имя проекта и дата отчета являются динамическими. Они создаются при создании отчета.
Рабочий процесс:
Создайте пользовательский класс reporter главы.
Измените заголовки в шаблоне главы PDF или Word.
Добавьте свойства к пользовательскому классу reporter для динамического содержимого в пользовательских заголовках.
Написание программы отчетов, которая использует пользовательский репортер и задает значения для свойств.
Создайте класс reporter главы скелета путем вызова mlreportgen.report.Chapter.customizeReporter
способ. Назовите класс Chapter
и сохраните его в папке класса в папке пакета.
mlreportgen.report.Chapter.customizeReporter('+abc/@Chapter');
Этот вызов метода также копирует шаблон главы для каждого типа отчета в +abc/@Chapter/resources/templates
папка.
Для изменения определений заголовков в шаблоне главы для отчета PDF:
Разархивируйте файл шаблона.
Отредактируйте определения заголовков в docpart_templates.html
файл с использованием текстового редактора.
Упакуйте извлеченные файлы в файл шаблона.
Измените текущую папку на папку, содержащую файл шаблона 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>
Разметка задает трехколоночную таблицу с одной строкой с этими характеристиками:
Камеры таблицы содержат логотип компании, отверстие для имени проекта и отверстие для даты отчета.
Содержимое первой, второй и третьей камер выровнено по левому краю, по центру и по правому краю, соответственно.
Заполнение между нижней частью камеры и содержимым камеры составляет 2pt.
Содержимое камеры выровнено по нижней части камеры.
Шрифт для текста во второй камере - Arial, 10pt и жирный. Шрифт для текста в третьей камере - Arial и 10pt.
Видна нижняя граница строки. Таблица не имеет границ, поскольку HTML не задает border
свойство.
Если вы редактировали docpart_templates.html
в редакторе MATLAB закройте файл перед упаковкой файлов.
Убедитесь, что вы в abc/@Chapter/resources/templates/pdf
+ папка, содержащая папку с именем
default
. Упаковать файлы в default
назад в исходный файл шаблона PDF.
zipTemplate('default.pdftx','default');
В Word шаблон Section1 используется для глав и разделов верхнего уровня. Шаблон находится в галерее Quick Parts.
Для изменения заголовков в шаблоне Section1:
Откройте файл шаблона в Word.
Создайте временную копию шаблона Section1 в теле документа шаблона.
Укажите, имеют ли все страницы одинаковый заголовок.
Отредактируйте заголовки.
Сохраните измененный шаблон Section1 в галерее Quick Parts.
Удалите содержимое из тела шаблонного документа и сохраните файл шаблона.
Переход к +abc/@Chapter/resources/templates/docx
.
Откройте файл шаблона одним из следующих методов:
В MATLAB на панели Текущая папка щелкните правой кнопкой мыши файл шаблона и выберите Открыть вне MATLAB.
За пределами MATLAB щелкните правой кнопкой мыши файл шаблона и выберите команду Открыть.
Не кликните файл шаблона Word дважды, чтобы открыть его. Двойной щелчок по файлу открывает файл документа Word, в котором используется шаблон.
Шаблон документа откроется на пустой странице.
Чтобы сделать символы абзаца и форматирования видимыми, на вкладке «Главная страница» нажмите кнопку «Показать/скрыть».
На вкладке Вставка (Insert) в группе Текст (Text) щелкните Быстрые детали (Quick Parts), а затем щелкните Section1 базовый блок.
В шаблонном документе Word вставляет копию шаблона Section1 и фиктивный раздел Section2. Раздел манекена игнорируется при создании отчета.
Курсор находится в фиктивном Section2. Прокрутка до шаблона Section1. Чтобы открыть заголовок, дважды кликните его.
В разделе «Инструменты верхнего и нижнего колонтитулов» на вкладке « Проекте» снимите флажок «Отличная первая страница».
Заголовок для страниц, следующих за первой страницей, копируется в заголовок первой страницы.
На вкладке «Вставка» Нажатия кнопки Таблицы. Наведите указатель мыши на сетку, пока вы не подсветите три столбца и одну строку.
Удалите сообщение Error! No text of specified style in document
и содержащийся в нем пункт.
Горизонтальное правило из исходного заголовка является нижней границей абзаца. Чтобы сделать его невидимым, щелкните абзац, а затем, на вкладке «Вкладке Home», в группе «Абзац», щелкните стреле справа от области «Границы» и выберите «Без границы».
Скопируйте и вставьте логотип компании в первую камеру таблицы. Используйте приложенную abc_logo.png
файл или ваш собственный файл изображений.
Если лента разработчика недоступна, щелкните Файл > Опции выберите Настроить ленту. В разделе «Настройка ленты» выберите «Разработчик».
На вкладке Разработчик (Developer) щелкните Проектом Mode (Режим), чтобы при создании отверстия можно было видеть метки отверстий с маркого заголовка.
Во второй камере перед меткой входа добавьте несколько пространства, чтобы добавить отверстие было встроенным отверстием.
Щелкните перед пространствами.
Нажмите кнопку Управление содержимым форматированного текста. Управление содержимым форматированного текста отображений.
Удалите добавленные пространства.
Замените текст в элементе управления текстом, который идентифицирует отверстие, например Project Name
.
На вкладке Developer нажмите свойства.
В диалоговом окне « Свойствах Content Control» выполните следующие действия.
в поле заголовок введите Project
.
В поле Тег введите Hole
.
Установите флажок Использовать стиль для форматирования текста, введенного в пустой элемент управления. Затем нажмите «Новый стиль».
В диалоговом окне «Создание нового стиля из форматирования» введите Project
в поле Имя. Для форматирования задайте Arial, 10pt. Нажмите кнопку Полужирное. Нажмите кнопку ОК.
В диалоговом окне Content Control Properties нажмите OK.
Добавьте встроенное отверстие для даты в третьей камере. Используйте шаги, используемые для добавления отверстия во вторую камеру.
Перед меткой входа добавьте несколько пространства.
Щелкните перед пространствами.
Нажмите кнопку Управление содержимым форматированного текста.
Удалите добавленные пространства.
Замените текст в элементе управления текстом, который идентифицирует отверстие, например, Датой отчета.
На вкладке Developer нажмите свойства. В диалоговом окне Свойств Content Control введите Date
в поле заголовок и Hole
в поле Тег.
Установите флажок Использовать стиль для форматирования текста, введенного в пустой элемент управления. Затем нажмите «Новый стиль».
В диалоговом окне «Создание нового стиля из форматирования» введите ReportDate в поле «Имя». Для форматирования задайте Arial и 10pt.
Таблица выглядит следующим образом:
Для определения нижнего поля камеры:
Выберите и щелкните правой кнопкой мыши таблицу.
Щелкните Свойства таблицы (Table Properties), затем на вкладке Таблица (Table) щелкните Опции (Options)
В диалоговом окне Таблицы Опций под полями камеры по умолчанию в поле Bottom введите 2pt.
Выровнять логотип влево в первой камере. Центрируйте отверстие в третьей камере. Выровнять отверстие в третьей камере вправо.
Для выравнивания содержимого камер:
Выберите изображение или отверстие в таблице.
На вкладке «Вкладке Home» в группе «Абзац» нажмите кнопку «Выровнять слева, по центру» или «Выровнять справа».
Для отображения только нижней границы таблицы:
Выберите таблицу.
В разделе Таблицы Инструментов на вкладке Проекта щелкните Границы > Без границы.
Выберите «Границы» > «Нижняя граница».
Установите значение параметра Линии Weight равным 1pt.
Закройте заголовок, дважды кликнув страницу за пределами заголовка.
Чтобы выбрать все содержимое шаблона, нажмите Ctrl + A.
На вкладке Вставка (Insert) щелкните Быстрые детали (Quick Parts), а затем щелкните Сохранить выбор (Save Selection) в Коллекции быстрых деталей (Quick Parts G
В диалоговом окне «Создание нового базового блока» в поле «Имя» введите Section1. Установите значение Quick Parts
, Категория по mlreportgen
, и Сохранить в по умолчанию. Нажмите кнопку ОК.
Когда вы увидите сообщение Do you want to redefine the building block entry?
, нажмите Да.
Перед сохранением файла шаблона лучшей практики удалить содержимое из тела документа шаблона.
Выделив содержимое, нажмите клавишу Delete.
Чтобы скрыть символы форматирования, на вкладке «Вкладке Home», в группе «Абзац», нажмите нажатие кнопки».
Сохраните файл шаблона.
Поскольку пользовательский заголовок имеет отверстия для динамического содержимого, необходимо задать свойства для отверстий.
Перейдите к +abc/@Chapter
папка.
В файле определения класса Chapter.m
, добавьте свойства, которые соответствуют Project
и Date
отверстия в заголовке. Замените пустые properties
сечение с:
properties Project = '' Date = '' end
Сохраните файл класса.
Когда вы генерируете отчет, создайте главу reporter из abc.Chapter
класс. Присвойте значения свойствам, которые соответствуют отверстиям в заголовке.
Прежде чем запускать следующий код, перейдите к папке, которая содержит +abc
папка. Кроме того, чтобы добавить папку, содержащую +abc
папка в путь MATLAB:
На панели инструментов MATLAB, на Вкладку Home, в группе Окружения, нажмите Set Пути.
В диалоговом окне «Задать путь» нажмите «Добавить папку».
В диалоговом окне «Добавить папку в путь» щелкните папку и выберите папку .
Вы не можете добавить пакеты к пути MATLAB. Добавьте папку, содержащую папку пакета.
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);
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);
mlreportgen.report.Chapter
| unzipTemplate
| zipTemplate