美文网首页
laravel 使用扩展包生成 PDF

laravel 使用扩展包生成 PDF

作者: haoyq | 来源:发表于2018-12-22 14:24 被阅读0次

    导语

    关于 PDF 的扩展包有不少,这次选择的是 DOMPDF,下面是具体操作。代码可查看 GitHub

    composer 安装以及配置

    依然使用 composer 安装,根据文档进行即可

    1. 执行 composer require barryvdh/laravel-dompdf
    2. 接下来是注册服务,在 config/app.php 中添加 Barryvdh\DomPDF\ServiceProvider::class,,如下
    注册服务
    1. 添加门面,同样是在 config/app.php 中添加 'PDF' => Barryvdh\DomPDF\Facade::class,,如下
    添加门面
    1. 经过以上三个步骤,可以正常使用了。为了修改配置方便,可以在 config 目录下生成配置文件,执行 php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider",成功后可查看 config/dompdf.php 配置文件。根据自己的需求进行修改,也支持动态修改。

    使用

    定义好路由之后,新建控制器进行测试。根据官方文档,可以使用 App::make('dompdf.wrapper') 或者 PDF 门面进行实例化,效果是一样的,使用门面注意 use PDF

    使用文档中的第一个示例

    $pdf = App::make('dompdf.wrapper');
    $pdf->loadHTML('<h1>Test</h1>');// 根据 HTML 代码生成 PDF
    return $pdf->stream();
    

    效果如下

    展示 PDF

    再来试下文档中的第二个示例

    $pdf = PDF::loadView('pdf', ['date' => date('Y-m-d')]);// 根据视图文件生成 PDF
    return $pdf->download('date.pdf');// 参数为文件名
    

    打开链接后,可以下载名为 date.pdf 的文件,内容如下

    date.pdf

    以上使用了 loadHTML()loadView() 两种方法,分别是根据 HTML 代码和视图生成。使用 loadFile() 来试下

    $file = storage_path('app/public/pdf/name.html');
    $pdf = PDF::loadFile($file);
    return $pdf->stream();
    
    展示 PDF

    也可以链式调用多个方法,下面的代码是根据视图生成 PDF,然后保存到指定路径,最后在进行展示

    return PDF::loadView('pdf', ['date' => date('Y-m-d')])->save(storage_path('app/public/pdf/date.pdf'))->stream('date.pdf');
    

    参考资料:DOMPDF

    相关文章

      网友评论

          本文标题:laravel 使用扩展包生成 PDF

          本文链接:https://www.haomeiwen.com/subject/yqcikqtx.html