我使用Yii2,mpdf和chartjs开发了一个应用程序。该页面在html中效果很好,但是当我使用mpdf导出为pdf时却没有显示图表。我该怎么解决?
<?= ChartJs::widget([
'type' => 'line',
'options' => [
'height' => 400,
'width' => 400,
'show_as_html'=> true
],
'data' => [
'labels' => ["January", "February", "March", "April", "May", "June", "July"],
'datasets' => [
[
'label' => "Sales",
'backgroundColor' => "rgba(255,99,132,0.2)",
'borderColor' => "rgba(255,99,132,1)",
'pointBackgroundColor' => "rgba(255,99,132,1)",
'pointBorderColor' => "#fff",
'pointHoverBackgroundColor' => "#fff",
'pointHoverBorderColor' => "rgba(255,99,132,1)",
'data' => [28, 48, 40, 19, 96, 27, 100]
]
]
]
]);
?>
答案 0 :(得分:1)
您可以在MPDF文档中查看:https://mpdf.github.io/html-support/html-tags.html
不支持canvas
和script
标签。对于图表,大多数使用画布,您可以看到Chartsjs也使用画布来呈现其图表。 https://www.chartjs.org/docs/latest/general/responsive.html
大多数PDF生成器不支持丰富的HTML和图表。
我建议您使用phantomJS
生成pdf。
http://jonnnnyw.github.io/php-phantomjs/
对于PDF:http://jonnnnyw.github.io/php-phantomjs/4.0/3-usage/#output-to-pdf