PDF生成php - 每次传递数据或使用模板?

时间:2018-05-23 01:14:48

标签: php laravel pdf dompdf

我正在使用php制作pdf文件。目前使用dompdf但对建议持开放态度。数据也将从数据库中检索。++ //引用Dompdf命名空间 使用Dompdf \ Dompdf;

我正在制作一个表单,其中我使用登录用户的用户名填充字段

每次制作PDF:(只是和示例)发现很难将php变量与html代码组合起来制作整个文档

$variable= Variable::findOrFail(session('id'));

$dompdf = new Dompdf();
$dompdf->loadHtml('$variable');
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$dompdf->stream();

或者我应该制作一个我变成pdf的视图吗?

$pdf = PDF::loadView('pdf.invoice', $data);
return $pdf->download('invoice.pdf');

1 个答案:

答案 0 :(得分:0)

  1. 如果您的模板不包含JS及其功能,那么在视图中使用模板时,DomPDF是一个不错的选择。但是,(只是一个额外的信息),如果你的模板使用JS,例如:画一个电荷,元素动画,......,你应该wkhtmltopdf。

  2. 在将数据传递给视图之前,您正在使用的loadView方法将使用extract方法。此方法提取所有数组元素,并根据元素的键为它们创建变量。因此,当您传递像['a' => 'aVal']这样的数组时,您可以在模板中使用$a变量(将返回aVal)。在您的情况下,使用$data = ['variable' => $variable]是正确的方法。

  3. 并且,如果您想传递多变量:$data = ['var1' => $var1, 'var2' => $var2, etc]。祝你好运!