如何在Yii2视图中使用mpdf和pjax?

时间:2018-01-10 13:53:02

标签: php yii2 yii2-advanced-app mpdf pjax

我正在使用pjax表单,我有打印按钮并提交如下按钮。

<?= Html::submitButton('Submit', ['name' => 'form', 'value' => 'submit']) ?>
<?= Html::submitButton('Pdf', ['name' => 'form', 'value' => 'pdf']) ?>

我将在下面的控制器中捕获提交

 public function actionRetail()
{
 $model = new Retail();
 if (Yii::$app->request->post('form') == 'submit') 
 {
    $model->saveRetail();
    $this->redirect("/Details");
}
if (Yii::$app->request->post('form') == 'pdf') 
{
    $mpdf= new \Mpdf\Mpdf();
    $mpdf->WriteHTML($this->renderPartial('DetailsPdf'));
    $mpdf->Output('details.pdf','D');   
}
  return $this->render('View',['model'=>$model]);
}

在这种形式提交工作正常,但如果点击pdf按钮而不是下载pdf它显示编码数据在同一页面如下。如果我删除pjax它工作正常。请帮助任何人如何在pjax视图中使用mpdf。

  

%PDF-1.4% 30 obj&lt;&gt; /内容4 0 R&gt;&gt; endobj 4 0 obj&lt;&gt;流x [Msܸ Y C

2 个答案:

答案 0 :(得分:0)

// Define a new \Mpdf\Mpdf document using utf-8 fonts
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8']);

view this link

答案 1 :(得分:0)

您需要为pdf按钮禁用pjax。只需添加'data-pjax'=&gt; 0

<?= Html::submitButton('Pdf', ['name' => 'form', 'value' => 'pdf', 'data-pjax' => 0]) ?>