如何在 Yii2 视图中使用 mpdf 和 pjax?
how to use mpdf and pjax in Yii2 view?
我在这里使用 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 时,它会在同一页面显示编码数据,如 below.If 我删除 pjax 它工作正常。请帮助任何人如何在 pjax 视图中使用 mpdf。
%PDF-1.4 %���� 3 0 obj <> /Contents 4 0 R>> endobj 4 0 obj <> stream x��[Msܸ�Y���C
// Define a new \Mpdf\Mpdf document using utf-8 fonts
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8']);
您需要为 pdf 按钮禁用 pjax。只需添加 'data-pjax' => 0
<?= Html::submitButton('Pdf', ['name' => 'form', 'value' => 'pdf', 'data-pjax' => 0]) ?>
我在这里使用 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 时,它会在同一页面显示编码数据,如 below.If 我删除 pjax 它工作正常。请帮助任何人如何在 pjax 视图中使用 mpdf。
%PDF-1.4 %���� 3 0 obj <> /Contents 4 0 R>> endobj 4 0 obj <> stream x��[Msܸ�Y���C
// Define a new \Mpdf\Mpdf document using utf-8 fonts
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8']);
您需要为 pdf 按钮禁用 pjax。只需添加 'data-pjax' => 0
<?= Html::submitButton('Pdf', ['name' => 'form', 'value' => 'pdf', 'data-pjax' => 0]) ?>