使用 JavaScript 时生成 PDF

Generating PDFs when JavaScript is being used

我不是 100% 确定我这里的错误。当我尝试生成 PDF 时,我得到了这个编码输出:

%PDF-1.4 %���� 3 0 obj <> /Contents 4 0 R>> endobj 4 0 obj <> stream x�S(T0�300@!�ҹ�iab�gai�ji�g`

我正在使用 Yii2 和 highcharts 包 https://github.com/2amigos/yii2-highcharts-widget along with the mPDF package https://github.com/kartik-v/yii2-mpdf

我希望能够生成此图的浏览器版本以及 PDF 版本。浏览器版本工作正常,但 PDF 尝试没有。我在操作中的代码是:

  if($pdf == true){ // render as pdf

  $content = $this->renderPartial('_overallPDF', [
    'model' => $data,
  ]);

  $doc = new Pdf([
    // set to use core fonts only
    'mode' => Pdf::MODE_UTF8,
    // A4 paper format
    'format' => Pdf::FORMAT_A4,
    // portrait orientation
    'orientation' => Pdf::ORIENT_LANDSCAPE,
    // stream to browser inline
    'destination' => Pdf::DEST_BROWSER,
    // your html content input
    'content' => $content,
  ]);

  return $doc->render();

}

我不确定这里的问题,可能是因为 highcharts 是一个 js 库并且在浏览器中完成了演示?

无论哪种方式,如果有人可以帮助我找到将图表生成为 PDF 的解决方案,那就太好了!

好吧,这已经得到回答:你想做的事情根本不可能,因为 MPDF 支持基本的 javascript...这与 yii2 无关。

如果你真的想在你的 pdf 文档中输出 highcharts 图表,你应该使用服务器端工具,例如: http://www.highcharts.com/docs/export-module/render-charts-serverside