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

В этом примере показано, как использовать программируемый подход, чтобы настроить размер страницы и поля страницы, заголовок, нижний колонтитул и поле в отчете 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);

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

| | | | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте