Настройка размера страницы и полей отчета программно

В этом примере показано, как использовать программный подход для настройки размера страницы и полей страницы, верхнего колонтитула, нижнего колонтитула и желоба в отчете PDF или Microsoft Word. Кроме того, можно использовать подход на основе шаблонов. Для примеров, которые используют подход на основе шаблонов, смотрите Настройка размера страницы и полей отчета Word с использованием шаблонов и Настройка размера страницы и полей отчета PDF с использованием шаблонов. Используйте подход на основе шаблонов, если планируется внести другие изменения в шаблоны. В противном случае используйте программный подход.

По умолчанию Report API генерирует страницы с 11-дюймовой высотой, шириной 8,5 дюйма и 1-дюймовыми полями. Колонтитулы и нижние колонтитулы имеют ширину 0,5 дюйма, а водосточный желоб составляет 0 пикселей. Возможно, потребуется изменить эти размерности в отчете. Например, если вы генерируете отчет для европейской локали, вам может потребоваться сгенерировать A4 страницы, которые имеют высоту 11,69 дюйма, ширину 8,27 дюйма и 0,98 дюйма.

Чтобы настроить размерности страниц отчета Report API программно, присвойте пользовательские mlreportgen.dom.PageSize и mlreportgen.dom.PageMargins объекты к объекту размещения, используемому целым отчетом или разделом отчета. Объект размещения для всего отчета является mlreportgen.report.ReportLayout объект, который назначается Layout свойство mlreportgen.report.Report объект. Размещением для раздела отчета является mlreportgen.report.ReporterLayout объект, который назначается Layout свойство объекта reporter, который представляет раздел. Объекты этих классов репортера имеют Layout свойство, которое можно использовать для настройки размерностей страниц для раздела:

  • mlreportgen.report.TitlePage

  • mlreportgen.report.TableOfContents

  • mlreportgen.report.ListOfFigures

  • mlreportgen.report.ListOfTables

  • mlreportgen.report.ListOfCaptions

  • mlreportgen.report.Chapter

Если вы настраиваете размерности страниц для всего отчета, а затем переопределяете размерности для раздела отчета, задайте все свойства PageSize или PageMargins объекты, которые вы создаете для сечения. В противном случае свойства, которые вы не задаете, имеют значения по умолчанию, которые могут отличаться от значений, заданных для всего отчета.

В этом примере вы создаете отчет, который имеет A4 страницу размерностей а затем переопределяете эти размерности для заголовка страницы.

Создайте контейнер отчета

Импортируйте пакеты DOM и Report API так, чтобы не использовать длинные, полные имена классов.

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

Создайте контейнер отчета для отчета Word. Для отчета PDF замените "docx" с "pdf".

rpt = mlreportgen.report.Report("myreport","docx");

Задайте пользовательские размерности страницы для всего отчета

Создайте PageSize объект, задающий высоту страницы 11,69 дюйма, ширину страницы 8,27 дюйма и ориентацию портрета. Назначьте 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);

См. также

| | | | |

Похожие темы