Laravel 5.0 - 从模板生成PDF并添加数据

时间:2015-10-12 12:35:16

标签: php laravel pdf laravel-5 dompdf

情况就是这样:

我有一个表单,用户必须填写 5个字段。我还有一个 PDF模板,其中一些布局带有 5个空白框

现在,当用户填写表单时,应该从pdf模板生成 PDF ,并且用户已经输入的字段应添加到模板

现在我的问题是什么是最好和最简单的方法呢?我查看了库laravel-dompdf,但它看起来不像是在使用模板。

有人必须这样做吗?如果是的话,你是怎么做到的?我正在使用laravel 5.0

4 个答案:

答案 0 :(得分:2)

我使用“vsmoraes / laravel-pdf”:“^ 1.0”包,它对我们来说很好。

use Vsmoraes\Pdf\Pdf;

private $pdf;

public function __construct(Pdf $pdf)
{
    $this->middleware('auth');
    $this->pdf = $pdf;
}
public function pdfMaker($data)
{
$html = view('pdf.shippinglabel')->with('purchase', $purchase)->with('products', $products)->render();

    $label = $this->pdf->load($html)->output();

    file_put_contents(storage_path()."/ftp/po/label_".$id.".pdf",$label);
}

然后我将格式化的pdf与嵌入式CSS结合,不包括外部CSS文件链接。

这是github网址:https://github.com/vsmoraes/pdf-laravel5

答案 1 :(得分:1)

Dompdf不适用于pdf模板,但它适用于HTML模板。

所以,你可以这样做:

  • 准备一个HTML模板并将一些占位符(即:{field1}{field2},ecc)放在要打印表格中的值的位置
  • 提交表单后,将html模板加载到字符串中,将字符串中的占位符替换为从表单中获取的实际值

  • 将字符串(包含有效的html)传递给dompdf并生成PDF文件

答案 2 :(得分:1)

使用Barry的Laravel包(https://github.com/barryvdh/laravel-dompdf),您可以加载视图。因此,可以使用Blade视图制作模板。

答案 3 :(得分:0)

我已使用包fpdffpdi来处理pdf模板。