1.使用composer加载tcpdf

composer require tecnickcom/tcpdf

2.引入

require "vendor/autoload.php";

3.代码

 protected $pdf;public function __construct(){$this->pdf = new \TCPDF();}// 设置PDF参数protected function setPdfAttr(){$this->pdf->setCreator(PDF_CREATOR);$this->pdf->setAuthor('Dya');$this->pdf->SetSubject('TCPDF Tutorial');$this->pdf->SetKeywords('TCPDF, PDF, example, test, guide');//页眉页脚$this->pdf->setPrintHeader(false);$this->pdf->setPrintFooter(true);// 页脚信息$this->pdf->setFooterData(array(0,64,0), array(0,64,128));$this->pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));$this->pdf->SetFooterMargin(PDF_MARGIN_FOOTER);// 自动分页 (第二个参数可以设置距离底部多少距离时分页)$this->pdf->setAutoPageBreak(true, 15);// 设置边距(左 上 右 下) 右边距默认左侧值 下边距是bool值(是否覆盖默认页边距)$this->pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);// 定义默认的单间距字体 (设置为等宽字体)$this->pdf->SetDefaultMonospacedFont('courier');// 设置图像比例因子$this->pdf->setImageScale(1.25);}

两种生成方式
1)html生成PDF

/*** html转PDF文档* @param $html string 内容* @param $title string 标题* @param string $fileName 文件名*/public function htmlPdf($html = '', $title = '', $fileName = 'doc.pdf'){$this->setPdfAttr();$this->pdf->setTitle($title);// 新增页面$this->pdf->AddPage();// 设置字体$this->pdf->SetFont('stsongstdlight', 'B', 20, '', true);// 文章标题$this->pdf->Cell(0, 0, '空调销售安装合同', '0', 1, 'C');$this->pdf->SetFont('stsongstdlight', '', 14, '', true);$this->pdf->writeHTMLCell('0', '0', null, null, $html);// PDF输出   I:在浏览器中打开,D:下载,F:在服务器生成pdf ,S:只返回pdf的字符串$this->pdf->Output($fileName, 'I');}

效果如图:

2)手动制表

/*** 绘制表格* @param $title* @param $fileName*/public function tablePdf($title, $fileName){$this->setPdfAttr();$this->pdf->setTitle($title);// 新增页面$this->pdf->AddPage();// 设置字体$this->pdf->SetFont('stsongstdlight', 'B', 24, '', true);// 参数 1:w 2:h 3:内容 4:边框 5:是否换行 6:内容居中等$this->pdf->Cell(0, 0, '财务收款收据', '0', 1, 'C');$this->pdf->SetFont('stsongstdlight', '', 18, '', true);$this->pdf->Cell(90, 30, 'TEL:888888', '0', 0, 'L');// 颜色 RGB颜色代码$this->pdf->setTextColor(255, 0, 0);$this->pdf->Cell(90, 30, 'NO.20221215', '0', 0, 'R');// 换行$this->pdf->Ln();// 重置颜色$this->pdf->setTextColor();$this->pdf->SetFont('stsongstdlight', '', 16, '', true);$this->pdf->Cell(90, 15, '     客户名称:张三', '0', 0, 'L');$this->pdf->Cell(90, 15, '日期:   2022年12月15日     ', '0', 1, 'R');$h = 15;// 绘表  表头$this->pdf->Cell(40, $h, '规格及名称', '1', 0, 'C');$this->pdf->Cell(15, $h, '单位', '1', 0, 'C');$this->pdf->Cell(20, $h, '数量', '1', 0, 'C');$this->pdf->Cell(25, $h, '单价', '1', 0, 'C');$this->pdf->Cell(45, $h, '金额', '1', 0, 'C');$this->pdf->Cell(35, $h, '备注', '1', 1, 'C');$data = [['name'=>'项目一','unit'=>'件','num'=>13,'price'=>55.00,'money'=>'715.00','remark'=>''],['name'=>'项目二','unit'=>'件','num'=>13,'price'=>54.00,'money'=>'702.00','remark'=>''],['name'=>'项目三','unit'=>'件','num'=>19,'price'=>54.00,'money'=>'1026.00','remark'=>''],['name'=>'项目四','unit'=>'件','num'=>24,'price'=>54.00,'money'=>'1296.00','remark'=>''],];// 内容foreach ($data as $item) {$this->pdf->Cell(40, $h, $item['name'], '1', 0, 'C');$this->pdf->Cell(15, $h, $item['unit'], '1', 0, 'C');$this->pdf->Cell(20, $h, $item['num'], '1', 0, 'C');$this->pdf->Cell(25, $h, $item['price'], '1', 0, 'C');$this->pdf->Cell(45, $h, $item['money'], '1', 0, 'C');$this->pdf->Cell(35, $h, $item['remark'], '1', 1, 'C');}$total = sprintf('%.2F', array_sum(array_column($data, 'money')));$this->pdf->Cell(100, $h, '合计金额:', 'LTB', 0, 'L');$this->pdf->Cell(45, $h, $total, 'TBR', 0, 'R');$this->pdf->Cell(35, $h, '', '1', 0, 'C');$this->pdf->Output($fileName, 'I');}

效果如图:

使用tcpdf合成PDF文件相关推荐

  1. Java 将图片组合成PDF文件

    程序界面图: 代码清单: package 将图片组合成PDF文件; import java.awt.event.ActionEvent; import java.awt.event.ActionLis ...

  2. TCPDF生成PDF文件方法教程说明

    TCPDF生成PDF文件方法教程说明 TCPDF下载: composer: 在packagist中所搜tcpdf (https://packagist.org/packages/tecnickcom/ ...

  3. c语言.jpg图片转成数组_多张jpg图片合成pdf文件

    唐县职称公众号 微信视频号 评审条件(小程序) 关于如何将多张jpg图片合成pdf文件 首先再强调一下"扫描",不要用手机拍照.高拍仪代替扫描.否则责任自负. 如何将多张JPG图片 ...

  4. php使用PdfParser搭配tcpdf解析pdf文件

    前几天客户提出一个需求,就是在前台页面搜索文章时,若搜索词在文章附件的pdf文件中有出现的话就要将该文章作为搜索结果.我的思路是后台发布文章时循环检测每一个附件的格式,若附件格式为pdf的话就将里面的 ...

  5. php使用TCPDF生成PDF文件教程

    functioncreatePdfFile($frontData) { /*新建一个pdf文件: Orientation:orientation属性用来设置文档打印格式是"Portrait& ...

  6. ThinkPHP5/PHP 使用TCPDF 生成PDF文件

    由于公司业务需求,需要生成PDF文件. 网上找了一些解决方案,很多是使用composer插件解决问题的.由于同事的顾虑,建议.把网上找的TCPDF插件包,当作第三方组件来使用,放在extend 扩展文 ...

  7. php导出页面为pdf文件大小,php用TCPDF导出PDF文件

    PHP生成PDF格式文件以TCPDF为基础,TCPDF是一个用于快速生成PDF文件的PHP5函数包.TCPDF基于FPDF进行扩展和改进.支持UTF-8,Unicode,HTML和 XHTML.在基于 ...

  8. 利用Python讲多张图片合成PDF文件

    前言 一个做美工的朋友需要将多个图片jpg .png 合并起来,PS操作太慢了所以用了python进行完成这个任务 基本环境配置 版本:Python3 系统:Windows 相关模块:PIL pip ...

  9. jpg转换成PDF 如何将多张图片合成一个PDF文件

    一般扫描一些文档资料之后形成的图片会放在同一个文件夹中,但是有时为了便于查看和管理这些图片,就会将图片合成一个文档,这样查看内容的时候会比较方便,一般也都是将图片转换成PDF文件. 把图片转换成PDF ...

最新文章

  1. Unity 打包发布Android新手教学 (小白都能看懂的教学 ) [转]
  2. JQuery 总结(4) DOM操作
  3. Debug深度学习中的NAN Loss
  4. ABAP 编程语言中的系统字段(System Fields)
  5. python gui界面启动脚本、点击按钮执行脚本_如何使用PyQt在按钮单击上调用python脚本...
  6. Java Web应用的代码分层最佳实践
  7. 【LeetCode笔记】253. 会议室 II(Java、偏数学)
  8. goldengate for mysql_GoldenGate for mysql to mysql:单向同步
  9. JNI调用两层C++动态库
  10. 想赚钱?先把底层逻辑搞清楚
  11. 基于先验LiDAR点云地图的单目VIO定位
  12. paip.eclipse忽然启动报错的解决
  13. 【持续更新】【产品相关名词解释】CBD、BOM、DFM、EVT、EOF、CMF、PP、MP等
  14. u盘自动挂载 树莓派_再推荐一个备份树莓派系统的脚本
  15. [数据结构与算法 DSA 林轩田] 1. Introduction to Data Structure and Algorithm
  16. 什么是域名?什么网站名?
  17. matlab移相法实现单边带调制,根据Matlab 单边带体系仿真研讨
  18. 面试必练:50道经典SQL练习
  19. html图片代码DWCS5,Dreamweaver cs5网页怎么添加图片
  20. erdas空间建模_ERDAS空间建模工具介绍.ppt

热门文章

  1. Mybatis学习笔记_5、Mybatis动态SQL
  2. 一文读懂图像信号中的高频和低频
  3. 怎么把图片的边缘弄圆_怎么把图片边角变圆?
  4. 使用DiskGenius(原DiskMan)修复损坏的硬盘分区
  5. java gif图片_java 如何生成动态的gif图片
  6. HTML+CSS+JS个人网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计
  7. c#程序设计实训报告心得体会_C#程序实际实训总结
  8. SIMXXX 在高德地图定位到我的位置
  9. 关于Solidworks打包的更好的方式(并保留部分文件结构)——使用“另存为”保存装配体
  10. 大数据技术(1):大数据发展脉络