Main Content

プログラムによるレポートのページ サイズと余白のカスタマイズ

この例では、PDF レポートまたは Microsoft® Word レポートのページ サイズとページ余白、ヘッダー、フッター、およびとじしろをカスタマイズするためにプログラムを使用する方法を示します。あるいは、テンプレートベースの方法を使用できます。テンプレートベースの方法を使用する例については、Customize the Page Size and Margins of a Word Report Using TemplatesおよびCustomize the Page Size and Margins of a PDF Report Using Templatesを参照してください。テンプレートに他の変更を加える予定がある場合は、テンプレートベースの方法を使用します。それ以外の場合は、プログラムによる方法を使用します。

既定では、レポート API は、高さ 11 インチ、幅 8.5 インチ、余白 1 インチのページを生成します。ヘッダーとフッターはそれぞれ 0.5 インチ幅で、とじしろは 0 ピクセルです。レポートのこれらの寸法は変更する必要があるかもしれません。たとえば、欧州ロケールのレポートを生成する場合、A4 のページ (高さ 11.69 インチ、幅 8.27 インチ、余白 0.98 インチ) を生成する必要があるかもしれません。

レポート API レポートのページ寸法をプログラムでカスタマイズするには、カスタム mlreportgen.dom.PageSize および mlreportgen.dom.PageMargins オブジェクトを、レポート全体またはレポート セクションで使用されるレイアウト オブジェクトに割り当てます。レポート全体のレイアウト オブジェクトは、mlreportgen.report.Report オブジェクトの Layout プロパティに割り当てられる mlreportgen.report.ReportLayout オブジェクトです。レポート セクションのレイアウトは、セクションを表すレポーター オブジェクトの Layout プロパティに割り当てられる mlreportgen.report.ReporterLayout オブジェクトです。これらのレポーター クラスのオブジェクトは、セクションのページ寸法をカスタマイズするために使用できる 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");

レポート全体に対するカスタム ページ寸法の指定

ページの高さ 11.69 インチ、ページの幅 8.27 インチ、および縦方向を指定する PageSize オブジェクトを作成します。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;

タイトル ページ セクションに対するページ寸法のオーバーライド

タイトル ページを作成し、レポート全体に対して指定した 0.98 の余白の代わりに、2 インチの余白を指定します。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);

TitlePage オブジェクト レイアウトには PageSize オブジェクトを割り当てていないため、ページ サイズはレポート全体に対して指定したサイズになります。

レポート全体に対して指定したページ寸法を使用してレポートの残りを作成する

目次セクションを作成します。カスタム ページ サイズやカスタム マージンは指定しません。ページの寸法は、レポート全体に対して指定した寸法になります。

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);

参考

| | | | |

関連するトピック