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 HTML ビューアーを使用して、整理されたマークアップを HTML DOM ドキュメントに変換します。https://www.w3.org/TR/WD-DOM/introduction.htmlを参照してください。
MATLAB HTML ビューアーは、入力 HTML で指定された内部および外部のスタイル シートと、要素のスタイル属性に基づいて、HTML 入力内の要素の CSS プロパティを計算します。CSS プロパティの計算では、有効なすべての CSS スタイル シート セレクターをサポートしています (
mlreportgen.dom.HTMLオブジェクトやmlreportgen.dom.HTMLFileオブジェクトが直接サポートしていないセレクターも含む)。HTML DOM ドキュメントを、
mlreportgen.dom.HTMLオブジェクトおよびmlreportgen.dom.HTMLFileオブジェクトがサポートする HTML マークアップに変換します。各要素のスタイル属性には、MATLAB HTML ビューアーによって計算された要素の 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);
参考
addHTML | addHTMLFile | mlreportgen.dom.HTMLFile | mlreportgen.dom.HTML | mlreportgen.utils.html2dom.prepHTMLFile | mlreportgen.utils.html2dom.prepHTMLString | mlreportgen.utils.tidy