Laravel 生成 PDF 文档 - tcpdf

工作中遇到了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
hou3749887
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4

怎么保存成 jpg 的文件

3年前 评论
wanghan

我插入的图片怎么跟文字重叠起来了。。。

3年前 评论
playmaker

有没有导出的效果 或者自己整理的好看的效果

3年前 评论
playmaker

页眉的logo 图怎么更换啊?

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!