Word レポートのページ余白の設定
この例では、Word (DOCX) レポートでページ余白を定義する方法を示します。DOCX ページの上下左右の余白に加えて、ヘッダー、フッター、およびとじしろのサイズを定義することができます。
レポートの作成
長い完全修飾クラス名を使用せずに済むよう、DOM API 名前空間をインポートします。
import mlreportgen.dom.*;
レポートを作成して開きます。
d = Document('myreport', 'docx'); open(d);
DOCX ページ ヘッダーの作成
現在のページ レイアウト オブジェクトを取得します。
currentLayout = d.CurrentPageLayout;
DOCX ドキュメントのページ ヘッダー定義を作成します。
docxheader = DOCXPageHeader();
DOM Paragraph
オブジェクトを作成し、中央揃えで太字にします。フォント サイズを 12 ポイントに設定します。これを DOCXPageHeader
オブジェクトに追加します。
p = Paragraph('Sample Traffic Data in Austin'); p.Style = [p.Style, {HAlign('center'), Bold(true), FontSize('12pt')}]; append(docxheader, p);
作成した docxheader
オブジェクトを現在のページ レイアウトの PageHeaders
に割り当てます。
currentLayout.PageHeaders = docxheader;
本文コンテンツの作成
形式的テーブルとそのテーブル エントリで使用されるスタイル用の 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);
上余白とヘッダー サイズの設定
PageMargins
オブジェクトの Top
プロパティは、余白の高さを指定します。Header
プロパティは、ページの上端からヘッダーの開始点までの距離を指定します。ページの上端からページ本体までの距離は、Top
プロパティ、Header
プロパティ、およびヘッダー コンテンツの高さによって異なります。たとえば、Header
プロパティが Top
プロパティより小さい場合、ヘッダーは上余白内で開始され、ヘッダーのコンテンツに合わせて下に拡張されます。本文は、余白またはヘッダーのいずれか大きい方の下端から始まります。
ヘッダーが Top
余白に収まるようにするには、次の設定を使用します。Top
プロパティを 1 インチに設定します。1 インチは 72 ポイントに等しいので、0.25 インチは 18 ポイントに等しくなります。Header
の値を 0.75 インチに設定します。残りの 0.25 インチは、作成される 12 ポイントの Paragraph
を DOCX ヘッダーに収めるのに十分です。
currentLayout.PageMargins.Top = '1in'; currentLayout.PageMargins.Header = '0.75in';
DOCX ページ フッターの作成
DOCX ドキュメントのページ フッター定義を作成します。
docxfooter = DOCXPageFooter();
水平線を docxfooter
オブジェクトに追加します。
append(docxfooter, HorizontalRule());
イメージを docxfooter
オブジェクトに追加します。DOM の ScaleToFit
書式を使用して、ページに収まるようにイメージをスケーリングします。作成した docxfooter
オブジェクトを現在のページ レイアウトの PageFooters
に割り当てます。
imgStyle = {ScaleToFit(true), HAlign('right'), Height('0.30in')}; img = Image('Logo_footer.Png'); img.Style = imgStyle; append(docxfooter, img); currentLayout.PageFooters = docxfooter;
下余白とフッター サイズの設定
PageMargins
オブジェクトの Bottom
プロパティは、ページ余白の高さを指定します。Footer
プロパティは、ページの下端からフッターの下端までの距離を指定します。ページの下端からページ本体までの距離は、Bottom
プロパティと Footer
プロパティの設定、およびフッター コンテンツの高さによって異なります。たとえば、Footer
プロパティが Bottom
プロパティより小さい場合、フッターは下余白内で開始され、フッターのコンテンツを拡張するために上に拡張されます。本文は、余白またはフッターのいずれか大きい方の上端から始まります。
Bottom
プロパティ値を 1 インチに設定します。高さ 0.30 インチの Image
と作成される水平線を DOCX フッター内に収めるには、Footer
プロパティの値を 0.5 インチに設定します。
currentLayout.PageMargins.Bottom = '1in'; currentLayout.PageMargins.Footer = '0.5in';
左余白、右余白、およびとじしろのサイズの設定
この例では、Gutter
設定を使用して、ページの左側にレポートをバインディングするための空間を残します。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);