Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

PDF レポートのページ余白の設定

この例では、PDF レポートでページ余白を定義する方法を示します。PDF ページの上下左右の余白に加えて、ヘッダー、フッター、およびとじしろのサイズを定義することができます。

レポートの作成

長い完全修飾クラス名を使用せずに済むよう、DOM API パッケージをインポートします。

import mlreportgen.dom.*;

レポートを作成して開きます。

d = Document('myreport', 'pdf');
open(d);

PDF ページ ヘッダーの作成

現在のページ レイアウト オブジェクトを取得します。

currentLayout = d.CurrentPageLayout;

PDF ドキュメントのページ ヘッダー定義を作成します。

pdfheader = PDFPageHeader();

DOM Paragraph オブジェクトを作成し、中央揃えで太字にします。フォント サイズを 12 ポイントに設定します。これを PDFPageHeader オブジェクトに追加します。

p = Paragraph('Sample Traffic Data in Austin');
p.Style = [p.Style, {HAlign('center'), Bold(true), FontSize('12pt')}];
append(pdfheader, p);

作成した pdfheader オブジェクトを現在のページ レイアウトの PageHeaders に割り当てます。

currentLayout.PageHeaders = pdfheader;

本文コンテンツの作成

形式的テーブルとそのテーブル エントリで使用されるスタイル用の cell 配列を作成します。

dataTableStyle = {Border('solid'), ColSep('solid'), RowSep('solid'), Width('100%')...
    OuterMargin('0pt', '0pt', '0pt', '0pt')};

オースティンの交通カメラからいくつかのサンプル データを作成して、テーブルに含めます。次に FormalTable オブジェクトを作成し、サンプル データをヘッダー セクションと本体セクションに含めます。

dataHeader = {'Camera ID', 'Status', 'Manufacturer', 'Signal Engineer Area'};
dataBody = {'1', 'TURNED_ON', 'Spectra', 'NORTHEAST';
    '2', 'TURNED_ON', 'Sarix', 'NORTHWEST';
    '3', 'TURNED_OFF', 'Spectura', 'SOUTHWEST';
    '3', 'TURNED_ON', 'Spectura', 'NORTHEAST';
    '4', 'TURNED_ON', 'Sarix', 'SOUTHEAST';
    '5', 'TURNED_ON', 'Spectra', 'NORTHEAST';
    '6', 'TURNED_ON', 'Sarix', 'NORTHWEST';
    '7', 'TURNED_OFF', 'Spectura', 'SOUTHWEST';
    '8', 'TURNED_ON', 'Spectura', 'NORTHEAST';
    '9', 'TURNED_ON', 'Sarix', 'SOUTHEAST'};
dataTable = FormalTable(dataHeader, dataBody);
dataTable.Header.Style = [dataTable.Header.Style {Bold}];
dataTable.Style = [dataTable.Style dataTableStyle];
append(d, dataTable);

上余白とヘッダー サイズの設定

PDF ページのヘッダーとフッターはサイズが固定されています。ページの上端から本文コンテンツまでの高さの合計は、PageMargins オブジェクトの Top プロパティの値に Header プロパティの値を加えたものです。

Top 余白プロパティを 0.75 インチに設定します。作成された 12 ポイントの Paragraph を PDF ヘッダーに収めるには、ヘッダー サイズを 0.25 インチに設定します。1 インチは 72 ポイントに等しいので、0.25 インチは 18 ポイントに等しくなります。Paragraph コンテンツは 12 ポイントしか占有しないため、ヘッダーを収容するのに 0.25 インチあれば十分です。本文コンテンツは、ページの上端から 1 インチの位置 (ヘッダーの高さ 0.25 インチを含む) から始まります。

currentLayout.PageMargins.Top = '0.75in';
currentLayout.PageMargins.Header = '0.25in';

PDF ページ フッターの作成

PDF ドキュメントのページ フッター定義を作成します。

pdffooter = PDFPageFooter();

水平線を pdffooter オブジェクトに追加します。

append(pdffooter, HorizontalRule());

イメージを pdffooter オブジェクトに追加します。DOM の ScaleToFit 書式を使用して、ページに収まるようにイメージをスケーリングします。作成した pdffooter オブジェクトを現在のページ レイアウトの PageFooters に割り当てます。

imgStyle = {ScaleToFit(true), HAlign('right'), Height('0.30in')};
img = Image('Logo.Png');
img.Style = imgStyle;
append(pdffooter, img);
currentLayout.PageFooters = pdffooter;

下余白とフッター サイズの設定

ページの下部から本文コンテンツまでの距離は、PageMargins オブジェクトの Bottom プロパティの値に Footer プロパティの値を加えたものになります。

Bottom プロパティの値を 0.5 インチに設定します。高さ 0.30 インチの Image と水平線をフッター内に収めるには、Footer プロパティの値を 0.5 インチに設定します。これにより、ページの下部から本文コンテンツまでの距離が 1 インチになります。

currentLayout.PageMargins.Bottom = '0.5in';
currentLayout.PageMargins.Footer = '0.5in';

左余白、右余白、およびとじしろのサイズの設定

この例では、Gutter 設定を使用して、ページの左側にレポートをバインディングするための空間を残します。The Gutter サイズは 0.25 インチに設定され、Left 余白は 0.5 インチに設定されます。したがって、コンテンツはページの左側から 0.75 インチのところ (左余白 + とじしろ) から始まります。Right 余白は 0.5 インチに設定されます。

currentLayout.PageMargins.Gutter = '0.25in';
currentLayout.PageMargins.Left = '0.5in';
currentLayout.PageMargins.Right = '0.5in';

レポートを生成して表示します。

close(d);
rptview(d.OutputPath);