Laravel 使用dompdf从HTML视图文件生成PDF并下载

Laravel 使用dompdf从HTML视图文件生成PDF并下载

在这个部分,我们将学习如何使用HTML视图文件来生成PDF。假设我们正在开发一个大型的ERP级Laravel项目。在这种情况下,我们需要使用数据库表来生成所需数据的PDF文件。我们将提供一个非常简单的逐步流程来生成PDF文件并下载它。

现在我们将使用laravel-dompdf包来创建一个PDF文件。使用这个包,我们也可以下载函数。在下面的示例中,我们将创建一个名为“items”的表。我们将使用项表的数据以表格形式下载pdf文件。如果希望,我们可以在视图文件上编写自己的CSS来生成更好的pdf文件。最后,我们将使用一些步骤来生成PDF并下载它,具体步骤如下。为此,我们应该有一个新鲜且正常工作的Laravel 5或Laravel 5.3项目。

步骤1:

在这一步中,我们将进行 安装 。我们首先打开终端或命令提示符并运行以下命令:

composer require barryvdh/laravel-dompdf

现在我们将打开名为config/app.php的文件。然后我们将添加别名和服务提供者。

'providers' => [
    ....
    Barryvdh\DomPDF\ServiceProvider::class,
],
'aliases' => [
    ....
    'PDF' => Barryvdh\DomPDF\Facade::class,
],

步骤2:

在这一步中,我们将 添加路由 。我们将创建路由以便生成视图。所以我们将打开名为”app/Http/routers.php”的文件。然后,我们将添加以下路由:

Route::get('pdfview',array('as'=>'pdfview','uses'=>'ItemController@pdfview'));

步骤3:

在这一步中,我们将创建控制器。为此,我们将使用app/Http/Controllers/ItemController.php路径来添加一个名为ItemController的新控制器。如果我们想要执行此操作,我们需要一个包含一些数据的项目表。当我们想要生成一个PDF文件并管理表数据时,这个控制器将非常有用。所以我们将使用控制器文件并将以下代码放入其中:

app/Http/Controllers/ItemController.php

namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Http\Request;
use DB;
use PDF;

class ItemController extends Controller
{

    /**
     * It will display application dashboard.
     *
     * It will return \Illuminate\Http\Response
     */
    public function pdfview(Request request)
    {items = DB::table("items")->get();
        view()->share('items',items);

        if(request->has('download')){
            pdf = PDF::loadView('pdfview');
            returnpdf->download('pdfview.pdf');
        }

        return view('pdfview');
    }
}

步骤4:

在这一步中,我们将会 创建视图文件 。我们将通过使用名为”pdfview.blade.php”的视图文件来创建视图和PDF文件。因此,我们将在创建的pdfview文件中添加以下代码。

resources/view/pdfview.blade.php

<style type="text/css">
    table td, table th{
        border:1px solid black;
    }
</style>
<div class="container">

    <br/>
    <a href="{{ route('pdfview',['download'=>'pdf']) }}">Download PDF</a>

    <table>
        <tr>
            <th>No</th>
            <th>Name</th>
            <th>Email</th>
        </tr>
        @foreach (items askey => item)
        <tr>
            <td>{{ ++key }}</td>
            <td>{{ item->name }}</td>
            <td>{{item->email }}</td>
        </tr>
        @endforeach
    </table>
</div>

利用上述代码,我们可以将项目文件转换成PDF文件,并且可以下载该文件。为了运行上述代码,我们需要启动Laravel 5或Laravel 5.3的服务器。为此,我们将打开终端或命令提示符,并运行以下命令:

php artisan serve

通过上面的命令,我们可以启动Laravel服务器。它将为我们提供Laravel应用程序的基本URL。我们将打开浏览器并输入以下URL来测试上述代码。

http://127.0.0.1:8000/pdfview

在输入上述URL后,我们将看到以下输出:

Laravel 使用dompdf从HTML视图文件生成PDF并下载

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程