Main Content

HTML コンテンツから DOM オブジェクトへの変換

HTML コンテンツは、レポートに追加可能な DOM オブジェクトに変換できます。HTML コンテンツは、文字列またはファイル形式とすることができます。文字列の HTML コンテンツを変換するには、次の方法のいずれかを使用します。

  • HTML コンテンツの文字列から mlreportgen.dom.HTML オブジェクトを作成してレポートに追加します。この方法は、DOM API またはレポート API のレポートで利用できます。

  • HTML コンテンツを変換し、それを mlreportgen.dom.Document オブジェクトまたは mlreportgen.dom.DocumentPart オブジェクトに addHTML メソッドを使用して追加します。このメソッドは HTML オブジェクトを返します。この方法は、DOM API レポートでのみ利用できます。

文字列の HTML コンテンツの変換を参照してください。

ファイル形式の HTML コンテンツを変換するには、次の方法のいずれかを使用します。

  • HTML ファイルから mlreportgen.dom.HTMLFile オブジェクトを作成してレポートに追加します。この方法は、DOM API またはレポート API のレポートで利用できます。

  • HTML コンテンツを変換し、それを mlreportgen.dom.Document オブジェクトまたは mlreportgen.dom.DocumentPart オブジェクトに addHTMLFile メソッドを使用して追加します。このメソッドは HTMLFile オブジェクトを返します。この方法は、DOM API レポートでのみ利用できます。

HTML ファイルのコンテンツの変換を参照してください。

変換前の HTML の準備

MATLAB® Report Generator™mlreportgen.dom.HTML オブジェクトや mlreportgen.dom.HTMLFile オブジェクトは、通常、サードパーティ アプリケーション (Microsoft® Word など) が出力した生の HTML を受け入れることができません。これらのアプリケーションは、ネイティブなドキュメントを HTML マークアップとしてエクスポートします。そのような場合、レポート API のレポート生成プログラムで関数 mlreportgen.utils.html2dom.prepHTMLString および mlreportgen.utils.html2dom.prepHTMLFile を使用して、mlreportgen.dom.HTML オブジェクトまたは mlreportgen.dom.HTMLFile オブジェクトで使用する生の HTML を準備できます。これらの関数は、次のことを行います。

  • HTML 出力の設定で mlreportgen.utils.tidy を呼び出して、無効なマークアップを修正します。

  • 整理されたマークアップを、MATLAB Web ブラウザーを使用して HTML DOM ドキュメントに変換します。https://www.w3.org/TR/WD-DOM/introduction.htmlを参照してください。

    MATLAB Web ブラウザーが、HTML 入力内の要素の CSS プロパティを、入力 HTML が指定する内部および外部のスタイル シートと要素のスタイル属性に基づいて計算します。CSS プロパティの計算では、有効なすべての CSS スタイル シート セレクターをサポートしています (mlreportgen.dom.HTML オブジェクトや mlreportgen.dom.HTMLFile オブジェクトが直接サポートしていないセレクターも含む)。

  • HTML DOM ドキュメントを、mlreportgen.dom.HTML オブジェクトおよび mlreportgen.dom.HTMLFile オブジェクトがサポートする HTML マークアップに変換します。各要素のスタイル属性には、MATLAB Web ブラウザーによって計算された要素の CSS プロパティが指定されます。

通常は、その準備された HTML をプログラムでさらに処理して、改行など、構文上の問題がなく、未加工のコンテンツから変換されなかった不要なオブジェクトを削除する必要があります。

ファイルから HTML コンテンツを準備する例については、DOM オブジェクトに変換する HTML の準備を参照してください。

文字列の HTML コンテンツの変換

文字列の HTML コンテンツを DOM オブジェクトに変換するには、mlreportgen.dom.HTML オブジェクトを作成してレポートに追加します。

import mlreportgen.dom.*;
d = Document('MyDoc','docx');
htmlObj = HTML('<p><b>Hello </b> <i style="color:green">World</i></p>');
append(d,htmlObj);
close(d);
rptview(d);

あるいは、HTML を変換して、それを addHTML メソッドを使用してドキュメントに追加します。このメソッドは HTML オブジェクトを返します。

import mlreportgen.dom.*;
d = Document('MyDoc','docx');
addHTML(d, '<p><b>Hello </b> <i style="color:green">World</i></p>');
close(d);
rptview(d);

作成した HTML オブジェクトには、さらに HTML コンテンツを追加できます。例:

import mlreportgen.dom.*;
d = Document('MyDoc','docx');
htmlObj = HTML('<p><b>Hello </b> <i style="color:green">World</i></p>');

append(htmlObj,'<p>This is <u>me</u> speaking</p>');
append(d,htmlObj);

close(d);
rptview(d);

HTML オブジェクトのコンテンツをレポートに複数回追加するには、clone メソッドを HTML オブジェクトで使用します。その後、クローンをレポートに追加します。

HTML ファイルのコンテンツの変換

HTML ファイルのコンテンツを DOM オブジェクトに変換するには、mlreportgen.dom.HTMLFile オブジェクトを作成してレポートに追加します。

次の HTML を含む、MyHTML.html というファイルを作成します。

<html><p style="color:green;font-family:arial">Hello World</p></html>

HTML ファイルのコンテンツに基づき、PDF レポートを生成します。

import mlreportgen.dom.*;
d = Document('MyPDF','pdf');
htmlObj = HTMLFile('MyHTML.html');
append(d,htmlObj);
close(d);
rptview(d);

あるいは、HTML を変換して、それを addHTMLFile メソッドを使用してドキュメントに追加します。

import mlreportgen.dom.*;
d = Document('MyPDF','pdf');
addHTMLFile(d,'MyHTML.html');
close(d);
rptview(d);

参考

| | | | | |

関連するトピック