Laravel 生成 PDF 文件 - tcpdf

hou3749887發表於2019-07-10

工作中遇到了Laravel生成pdf文件,就找了找類庫,今天給大家推薦的類庫是:tcpdf,因為它官網給的例子比較全,所以就用它了。
官網例子: 可以點選進去體驗一下。
github:
packagist:
之前還看了fpdf類庫,支援中文不是很方便,需要一箇中文擴充套件程式,所以就放棄它了。今天tcpdf是主角,先看一下它的特型。

TCPDF具有以下特性:

  1. 支援頁面頁尾;
  2. 支援HTML標籤程式碼;
  3. 支援jpg/png/gif/svg圖形影像;
  4. 支援表格;
  5. 支援中文字元;(有些PDF類不支援中文或者處理中文相當麻煩)
  6. 自動分頁,自動頁碼,等等。

如何用Laravel生成pdf文件?

由於開發工作用的是Laravel,所以首先需要引入類庫,如下:

composer require tecnickcom/tcpdf

程式碼如下:

$pdf = new \TCPDF();
        // 設定文件資訊
        $pdf->SetCreator('懶人開發網');
        $pdf->SetAuthor('懶人開發網');
        $pdf->SetTitle('TCPDF示例');
        $pdf->SetSubject('TCPDF示例');
        $pdf->SetKeywords('TCPDF, PDF, PHP');

        // 設定頁首和頁尾資訊
        $pdf->SetHeaderData('tcpdf_logo.jpg', 30, 'LanRenKaiFA.com', '學會偷懶,並懶出效率!', [0, 64, 255], [0, 64, 128]);
        $pdf->setFooterData([0, 64, 0], [0, 64, 128]);

        // 設定頁首和頁尾字型
        $pdf->setHeaderFont(['stsongstdlight', '', '10']);
        $pdf->setFooterFont(['helvetica', '', '8']);

        // 設定預設等寬字型
        $pdf->SetDefaultMonospacedFont('courier');

        // 設定間距
        $pdf->SetMargins(15, 15, 15);//頁面間隔
        $pdf->SetHeaderMargin(5);//頁首top間隔
        $pdf->SetFooterMargin(10);//頁尾bottom間隔

        // 設定分頁
        $pdf->SetAutoPageBreak(true, 25);

        // set default font subsetting mode
        $pdf->setFontSubsetting(true);

        //設定字型 stsongstdlight支援中文
        $pdf->SetFont('stsongstdlight', '', 14);

        //第一頁
        $pdf->AddPage();
        $pdf->writeHTML('<div style="text-align: center"><h1>第一頁內容</h1></div>');
        $pdf->writeHTML('<p>我是第一行內容</p>');
        $pdf->writeHTML('<p style="color: red">我是第二行內容</p>');
        $pdf->writeHTML('<p>我是第三行內容</p>');
        $pdf->Ln(5);//換行符
        $pdf->writeHTML('<p><a href="http://www.lanrenkaifa.com/" title="">懶人開發網</a></p>');

        //第二頁
        $pdf->AddPage();
        $pdf->writeHTML('<h1>第二頁內容</h1>');

        //輸出PDF
        $pdf->Output('t.pdf', 'I');//I輸出、D下載
本作品採用《CC 協議》,轉載必須註明作者和本文連結
MrHou

相關文章