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
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

怎么保存成 jpg 的文件

3年前 评论
wanghan

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

3年前 评论
playmaker

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

3年前 评论
playmaker

页眉的logo 图怎么更换啊?

3年前 评论

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