グラフにjqplotを使用し、Google Datatableを使用してデータを表形式で表示するWebページがあります。ダウンロード用の Web ページの PDF コピーを生成するために、Web ページに「エクスポート」ハイパーリンクもあります。私のエクスポートコードは次のようになります。
function exportPDF() {
var img = $('#clicks_chart_div').jqplotToImage(0, 0);
if (img) {
var imgTag = $('<img id="ccanvasimage">');
imgTag.attr('src', img.toDataURL("image/png"));
imgTag.attr('width', 450);
imgTag.attr('height', 320);
$('#clicks_chart_div').replaceWith(imgTag);
} else {
alert('could not get image');
}
$('#src').val(document.documentElement.innerHTML);
$('#frmSource').submit();
}
このコードはブラウザーで適切に機能し、それぞれの PDF をダウンロードします。ただし、HTMLUnit を介して同じページを呼び出すと、「var img = $('#clicks_chart_div').jqplotToImage(0, 0);」という呼び出しが行われます。画像を生成できず、else の部分「alert('could not get image');」に進みます。したがって、結果の PDF には Datatable のみが含まれ、グラフは含まれません。
呼び出し jqplotToImage が失敗する理由について何か考えはありますか? FWIW、jqplotToImage のコードは、次のように外部スクリプトを介して含まれています。
<script language="javascript" type="text/javascript" src="javascripts/export-jqplot-to-png.js"></script>
ありがとう。