TCPDF轮子,Laravel 生成 PDF 文档
官网例子:https://tcpdf.org/examples
github: https://github.com/tecnickcom/tcpdf
packagist: https://packagist.org/packages/tecnickcom/tcpdf
之前还看了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下载、 F保存到服务器