メインコンテンツ

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

書式の継承

ドキュメント オブジェクト モデル (DOM) API を使用すると、テンプレートベースのスタイルを使用してドキュメント要素オブジェクトの外観を指定したり、オブジェクトベースのスタイルやそれに相当する書式プロパティを書式設定したりできます。ドキュメント要素オブジェクトの StyleName プロパティと Style プロパティを設定している場合、StyleName プロパティのテンプレートベースのスタイルで指定された対応する書式がこの Style プロパティの書式でオーバーライドされます。この例において、Warning スタイルは警告の色を黄色として定義しているとします。段落の Style プロパティの設定により、StyleName 設定で指定した色がオーバーライドされます。

import mlreportgen.dom.*;
d = Document("MyDoc","docx","MyTemplate");
p = Paragraph("Danger!");
p.StyleName = "Warning";
p.Style = {Color("red")};
append(d,p);
close(d);

1 つのステートメントを使用して、コンテナーに含まれるすべてのドキュメント要素オブジェクトの書式を割り当てることができます。たとえば、次のコードは 1 つの Style プロパティを使用して、テーブルのすべてのエントリに色を割り当てます。

import mlreportgen.dom.*;
d = Document("MyDoc");
tableArray = {"a","b";"c","d"};
table = append(d,tableArray);
table.Style = {Color("blue")};
close(d);
rptview(d.OutputPath);

HTML または PDF のレポートを生成すると、ドキュメント要素オブジェクトは、StyleName の値を指定しているかどうかにかかわらず、指定されていない書式をコンテナーから継承します。コンテナーは、指定されていない任意の書式を自身のコンテナーから継承し、これがコンテナー階層の最上位まで同様に繰り返されます。

DOCX レポートを生成し、ドキュメント要素オブジェクトの StyleName の値を指定すると、オブジェクトは指定されていない書式をコンテナーから継承しません。この例では、ドキュメント要素オブジェクト textStyleName の値を指定し、ドキュメント要素オブジェクト para に指定された太字書式を継承しません。

import mlreportgen.dom.*;

d = Document("MyDoc","docx");

text = Text("My Paragraph");
text.Underline = "single";
text.StyleName = "paraTitle";

para = Paragraph(text);
para.Bold = true;

append(d,para);
close(d);
rptview(d);

The text "My Paragraph" without bold formatting

StyleName の値を指定しなかった場合、ドキュメント要素オブジェクト text は、ドキュメント要素オブジェクト para に指定された太字書式を継承します。

import mlreportgen.dom.*;
d = Document("MyDoc","docx");

text = Text("My Paragraph");
text.Underline = "single";

para = Paragraph(text);
para.Bold = true;

append(d,para);
close(d);
rptview(d);

The text "My Paragraph" with bold formatting

参考

トピック