工作中遇到了Laravel生成pdf文件,就找了找類庫,今天給大家推薦的類庫是:tcpdf,因為它官網給的例子比較全,所以就用它了。
官網例子: 可以點選進去體驗一下。
github:
packagist:
之前還看了fpdf類庫,支援中文不是很方便,需要一箇中文擴充套件程式,所以就放棄它了。今天tcpdf是主角,先看一下它的特型。
TCPDF具有以下特性:
- 支援頁面頁尾;
- 支援HTML標籤程式碼;
- 支援jpg/png/gif/svg圖形影像;
- 支援表格;
- 支援中文字元;(有些PDF類不支援中文或者處理中文相當麻煩)
- 自動分頁,自動頁碼,等等。
如何用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 協議》,轉載必須註明作者和本文連結