尽管在 html 视图中显示,Chartjs 并未在 yii2 的 pdf 中显示

Chartjs does not show on pdf in yii2 despite showing in html view

我使用 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]
        ]
    ]
]
]);
?>

您可以在 MPDF 文档中看到:https://mpdf.github.io/html-support/html-tags.html 不支持 canvasscript 标签。在图表的情况下,大多数使用 canvas,你可以看到 chartsjs 也使用 canvas 来呈现它的图表。 https://www.chartjs.org/docs/latest/general/responsive.html

大多数 PDF 生成器不支持丰富 HTML 和图表。

我建议您使用 phantomJS 生成 pdf。

http://phantomjs.org/

http://jonnnnyw.github.io/php-phantomjs/

对于 PDF:http://jonnnnyw.github.io/php-phantomjs/4.0/3-usage/#output-to-pdf