【问题标题】:Laravel 5.0 - Generate PDF from template and add dataLaravel 5.0 - 从模板生成 PDF 并添加数据
【发布时间】:2016-01-09 22:37:48
【问题描述】:

是这样的:

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

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

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

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

【问题讨论】:

    标签: php laravel pdf laravel-5 dompdf


    【解决方案1】:

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

    所以,你可以这样做:

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

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

    【讨论】:

    • 感谢@Moppo 提供的解决方案,请您设置代码以查看如何使用它
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        我使用 "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);
        }
        

        然后我有了嵌入 CSS 的格式化 pdf,不包括外部 CSS 文件链接。

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

        【讨论】:

          猜你喜欢
          • 2019-04-11
          • 1970-01-01
          • 2015-02-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-26
          • 2011-01-09
          • 1970-01-01
          相关资源
          最近更新 更多