exponenta event banner

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

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

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

Для программной настройки размеров страниц отчета API Report назначьте пользовательские 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);

См. также

| | | | |

Связанные темы