В этом примере показано, как использовать программируемый подход, чтобы настроить размер страницы и поля страницы, заголовок, нижний колонтитул и поле в отчете Microsoft Word или PDF. В качестве альтернативы можно использовать основанный на шаблоне подход. Для примеров, которые используют основанный на шаблоне подход, смотрите, Настраивают Размер страницы и Поля Word Report Using Templates и Настраивают Размер страницы и Поля Отчета PDF Используя Шаблоны. Используйте основанный на шаблоне подход, если вы планируете сделать другие модификации к шаблонам. В противном случае используйте программируемый подход.
По умолчанию API Отчета генерирует страницы, которые имеют 11 дюймов высотой, 8,5 дюймов шириной, и 1-дюймовые поля. Заголовки и нижние колонтитулы - каждый 0,5 дюйма шириной, и поле составляет 0 пикселей. Вы можете должны быть изменить эти размерности в своем отчете. Например, если вы генерируете отчет для европейской локали, вы можете должны быть сгенерировать страницы A4, которые имеют 11,69 дюймов высотой, 8,27 дюймов шириной, и 0,98-дюймовые поля.
Чтобы настроить измерения страницы API Отчета сообщают программно, присваивают пользовательский mlreportgen.dom.PageSize
и mlreportgen.dom.PageMargins
объекты к объекту размещения, используемому целым отчетом или разделом отчета. Объектом размещения для целого отчета является mlreportgen.report.ReportLayout
объект, который присвоен Layout
свойство mlreportgen.report.Report
объект. Размещением для раздела отчета является mlreportgen.report.ReporterLayout
объект, который присвоен Layout
свойство объекта генератора отчетов, который представляет раздел. Объекты этих классов генератора отчетов имеют Layout
свойство, которое можно использовать, чтобы настроить измерения страницы для раздела:
mlreportgen.report.TitlePage
mlreportgen.report.TableOfContents
mlreportgen.report.ListOfFigures
mlreportgen.report.ListOfTables
mlreportgen.report.ListOfCaptions
mlreportgen.report.Chapter
Если вы настраиваете измерения страницы для целого отчета и затем заменяете размерности для раздела отчета, задаете все свойства PageSize
или PageMargins
объекты, которые вы создаете для раздела. В противном случае свойства, которые вы не задаете, имеют значения по умолчанию, которые могут отличаться от значений, которые вы задали для целого отчета.
В этом примере вы создаете отчет, который имеет измерения страницы A4, и затем замените те размерности для титульного листа.
Импортируйте DOM и пакеты API Отчета так, чтобы вы не использовали долго, полностью определенные имена классов.
import mlreportgen.dom.*; import mlreportgen.report.*;
Создайте контейнер отчета для отчета Word. Для отчета PDF замените "docx"
с "pdf"
.
rpt = mlreportgen.report.Report("myreport","docx");
Создайте PageSize
объект, который задает 11,69-дюймовую высоту страницы, 8,27-дюймовую страницу width и портретную ориентацию. Присвойте PageSize
возразите против объекта размещения отчета.
pageSizeObj = PageSize("11.69in","8.27in","portrait"); rpt.Layout.PageSize = pageSizeObj;
Создайте PageMargins
объект, который задает
Верхняя часть, нижняя часть, оставленная, правые поля 0,98 дюймов
Заголовок и высоты нижнего колонтитула 0,5 дюймов
Размер поля 0 дюймов
pageMarginsObj = PageMargins(); pageMarginsObj.Top = "0.98in"; pageMarginsObj.Bottom = "0.98in"; pageMarginsObj.Left = "0.98in"; pageMarginsObj.Right = "0.98in"; pageMArginsObj.Header = "0.5in"; pageMarginsObj.Footer = "0.5in"; pageMarginsObj.Gutter = "0in";
Присвойте PageMargins
возразите против объекта размещения отчета.
rpt.Layout.PageMargins = pageMarginsObj;
Создайте титульный лист и задайте 2-дюймовые поля вместо этих 0,98 полей, заданных для целого отчета. Задайте 0,5-дюймовый заголовок и нижний колонтитул и 0-дюймовое поле.
title = TitlePage("Title","Magic Squares"); title.Subtitle = "Columns, Rows, Diagonals: All Equal Sums"; title.Author = "Albrecht Durer"; pageMarginsObj = PageMargins(); pageMarginsObj.Top = "2in"; pageMarginsObj.Bottom = "2in"; pageMarginsObj.Left = "2in"; pageMarginsObj.Right = "2in"; pageMArginsObj.Header = "0.5in"; pageMarginsObj.Footer = "0.5in"; pageMarginsObj.Gutter = "0in";
Присвойте PageMargins
возразите против TitlePage
объект размещения.
title.Layout.PageMargins = pageMarginsObj; append(rpt,title);
Размер страницы будет размером, заданным для целого отчета, потому что вы не присваивали PageSize
возразите против TitlePage
структура объекта.
Создайте раздел оглавления. Не задавайте пользовательский размер страницы или пользовательские поля. Измерения страницы будут размерностями, заданными для целого отчета.
toc = TableOfContents; append(rpt,toc);
Создайте главу, которая использует измерения страницы по умолчанию.
chapter = Chapter("Introduction"); sec1 = Section("What is a Magic Square?"); para = Paragraph(['A magic square is an N-by-N matrix '... 'constructed from the integers 1 through N^2 '... 'with equal row, column, and diagonal sums.']); append(sec1,para); append(chapter,sec1); sec2 = Section("Albrect Durer and the Magic Square"); para = Paragraph([ ... 'The German artist Albrecht Durer (1471-1528) created '... 'many woodcuts and prints with religious and '... 'scientific symbolism. One of his most famous works, '... 'Melancholia I, explores the depressed state of mind '... 'which opposes inspiration and expression. '... 'Renaissance astrologers believed that the Jupiter '... 'magic square (shown in the upper right portion of '... 'the image) could aid in the cure of melancholy. The '... 'engraving''s date (1514) can be found in the '... 'lower row of numbers in the square.']); append(sec2,para); append(chapter,sec2); append(rpt,chapter);
close(rpt); rptview(rpt);
mlreportgen.report.ReportLayout
| mlreportgen.report.ReporterLayout
| mlreportgen.report.Report
| mlreportgen.report.Reporter
| mlreportgen.dom.PageSize
| mlreportgen.dom.PageMargins