我们利用的开源类库便是TCPDF
GITHUB地址:
https://github.com/tecnickcom/TCPDF
composer安装:
composer require tecnickcom/tcpdf
demo示例:
https://tcpdf.org/examples/
这里紧张讲的是讲HTML天生PDF由于HTML格式绝大部分够用了,其它个性化的功能大家看下官方的DEMO就行了比如天生图表等
下面说下详细利用办法:
1.实例化TCPDF工具
$pdf = new TCPDF(PDF_PAGE_ORIENTATIN, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
2.设置标题关键字等(步骤可以省略)
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF演示');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
3.设置字体(这步很主要不然中文乱码)
$fontname = TCPDF_FONTS::addTTFfont('Droid Sans Fallback.ttf', 'TrueTypeUnicode', '', 32);
$pdf->SetFont($fontname, '', 20);
4.添加个页面
$pdf->AddPage();
5.将HTML天生PDF
$pdf->writeHTML($html);
6.输出(默认直接在浏览器显示)
$pdf->Output();
$pdf->Output('123.pdf','D');//这个是下载,其他办法请更换参数
7.天生后的效果
链接列表等演示
天生图片演示
表格演示
末了总结:
1.一定要设置字体,否则中文乱码。最好利用文本的设置方法和字体。网上的设置字体的方法虽然能办理但是用pdfparser这个类读取天生后的PDF内容还是乱码(读取PDF内容的方法在我另一篇文章中有说到)
2.如果你设置了PDF的头和脚 还需在设置一遍字体
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, 'PDF头部标题', '代码庸医');
$pdf->setHeaderFont(Array($fontname, '', PDF_FONT_SIZE_MAIN));