Main Content

テキストの作成と書式設定

テキストの作成

文字ベクトルをドキュメント、段落、テーブル エントリまたはリスト項目に追加することで、テキストを作成できます。DOM の関数 append は、文字ベクトルを Text オブジェクトに変換し、それを追加して、Text オブジェクトを返します。Text オブジェクトを使用してテキストを書式設定します。text オブジェクトを直接作成し、ドキュメントに追加することもできます。ここでの例では、

  • 'Hello' をドキュメントに追加することで、Text オブジェクト t1 を作成

  • Text コンストラクターを使用して、Text オブジェクトを作成し、テキスト 'World' をドキュメントに追加

import mlreportgen.dom.*
d = Document('mydoc','html');

t1 = append(d,'Hello'); 

append(d,Text('World'));

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

特殊文字の作成

mlreportgen.dom.CharEntity オブジェクトを作成して、特殊文字 (英国ポンド記号など) を定義してレポートに含めることができます。https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references にリストされている文字エンティティの名前を指定します。例:

import mlreportgen.dom.*;
d = Document('test','html');

p = Paragraph(CharEntity('pound'));
append(d,p);
append(p,'3');

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

HTML または XML マークアップの追加

HTML マークアップを HTML ドキュメントに追加したり、Microsoft® Word XML マークアップを Word ドキュメントに追加するには、mlreportgen.dom.RawText オブジェクトを使用します。この手法は、DOM API で直接サポートされていない HTML または Word 要素の作成に役立ちます。この例では、RawText オブジェクトを作成して HTML マークアップを追加する方法を示します。

import mlreportgen.dom.*;
d = Document('test','html');

append(d,RawText('<em>Emphasized Text</em>'));

close(d);
rptview('test','html');

テキストの書式設定

DOM 書式オブジェクトまたは Text オブジェクトの書式プロパティを使用して、テキストをプログラムによって書式設定できます。テンプレート スタイルを使用することもできます。これらの書式設定の手法および書式の継承の詳細については、レポートの書式設定方法を参照してください。

プログラムによるテキストの書式設定

書式オブジェクトを使用して Text オブジェクトを書式設定したり、書式プロパティを使用して一般的に使用されるテキストの書式を指定したりできます。この例では以下を使用します。

  • 第 1 フォントおよびバックアップ フォントを指定する FontFamily 書式オブジェクト

  • テキストの太さを指定する Bold 書式プロパティ

import mlreportgen.dom.*;
d = Document('test','html');

t = append(d,'Bold Arial text');

fontFamily = FontFamily('Arial');
fontFamily.BackupFamilyNames = {'Helvetica'};
t.Style = {fontFamily};

t.Bold = true;         

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

これらの書式オブジェクトと書式プロパティを使用して、テキストを書式設定します。

書式設定 書式オブジェクト書式プロパティ

フォント

FontFamily

FontFamilyName

バックアップ フォント (HTML のみ)

FontFamily

N/A

コンプレックス スクリプト用のフォント (アラビア語など)

FontFamily

N/A

東アジア言語用のフォント

FontFamily

N/A

フォント サイズ

FontSize

FontSize

前景色

Color

Color

背景色

BackgroundColor

BackgroundColor

太字

Bold

Bold

イタリック

Italic

Italic

下付き文字または上付き文字

VerticalAlign

N/A

取り消し線

Strike

Strike

下線のタイプ (単一線、二重線など)

Underline

Underline

下線の色

Underline

N/A

空白の保持

WhiteSpace

WhiteSpace

指定どおりに表示

Display

N/A

Microsoft Word スタイル シートを使用したテキストの書式設定

レポートの生成に使用した Word テンプレート内に定義されたスタイルを使用して、段落を書式設定できます。

Word テンプレートでテキスト スタイルを定義するには、まず次の手順に従います。

  1. レポートで使用する Word テンプレートを開きます。

  2. [スタイル] ペインを開きます。

  3. [スタイルの管理] ボタン をクリックします。

  4. [新しいスタイル] をクリックします。

  5. [書式から新しいスタイルを作成] ダイアログ ボックスで、[種類][文字] または [リンク (段落と文字)] に設定します。

Word スタイルの取り扱い方法の詳細については、Microsoft Word テンプレートでのスタイルの変更を参照してください。

スタイル シートを使用した HTML と PDF のテキストの書式設定

レポートの生成に使用するテンプレート内に定義されたスタイルを使用して、テキストを書式設定できます。テンプレート スタイルを Text オブジェクトに適用するには、Text オブジェクト コンストラクターの 2 番目の引数として指定するか、StyleName プロパティをテンプレート スタイルに設定します。

スタイルを定義するには、カスケード スタイル シート (CSS) の構文を使用します。span 要素でセレクターを使用して、スタイル名を指定します。この CSS は、Pass という名前のスタイルを定義します。

span.Pass {
  font-family: "Times New Roman", Times, serif;
  color: green;
}

HTML テンプレートでは、任意の CSS プロパティおよびセレクターを使用できます。PDF テンプレートでは、CSS プロパティとセレクターのサブセットを使用できます。PDF テンプレートでのスタイルの変更を参照してください。

text オブジェクトへのスタイルの適用

テンプレート スタイルを Text オブジェクトに適用するには、Text オブジェクト コンストラクターの 2 番目の引数として指定するか、StyleName プロパティをテンプレート スタイルに設定します。レポート用のテンプレートに BodyPass および Fail という名前のスタイルを定義したとします。その後、これらのスタイルを適用できます。

import mlreportgen.dom.*;
passed = rand(1) >= 0.5;
rpt = Document('MyReport','html','MyTemplate');

t1 = Text('Test status: ');
t1.StyleName = 'Body';
t1.WhiteSpace = 'preserve';

if passed
  status = 'Passed';
  statusStyle = 'Pass';
else
  status = 'Failed';
  statusStyle = 'Fail';
end

t2 = Text(status,statusStyle);
statusPara = Paragraph(t1);
append(statusPara,t2);
append(rpt, statusPara);

close(rpt);
rptview(rpt.OutputPath);

テンプレートの書式のオーバーライド

プログラムによる書式設定を使用して、テンプレートベースのスタイルで定義された書式をオーバーライドできます。AlertLevel という名前の、色を緑に設定するスタイルをテンプレートに定義しているとします。レポート プログラムでこのスタイルをオーバーライドし、現在の警告レベルに応じて色を設定できます。

t = Text('Danger!','AlertLevel');
t.Color = 'red';

参考

クラス

関連する例

詳細