一:安装Tcpdf依赖
composerinstalltecnickcom/tcpdf
二:编写htmlToPdf方法
/******
* html生成pdf文件
* tag: 合约生成
* $params['author']作者
* $params['title'] 标题
* $params['subject'] 主题
* $params['keywords'] 关键词
* $params['signDate'] 签约日期,
* $params['html'] html内容
* $params['filename'] 存放合约路径文件名
* **********/
public function htmlToPdf($params=[])
{
$params = [
'author' => '张小凡',
'title' => '张小凡',
'subject' => '张小凡',
'keywords' => '张小凡',
'signDate' => '张小凡',
'html' => '客戶扣款授權書
鑒於:
'
. '授權人以真實身份在 GOLDMAN GLOBAL INVESTMENT FUNDS LTD(以下簡稱GOLDMAN GLOBAL)(被授權人)的期貨交易商申請賬戶用於交易,且授權人 张小凡 與 智投科技(香港)有限公司 於 1111簽署的《軟件技術服務協議(協議編號:2323 )》(以下簡稱軟件協議)中對於軟件服務費進行了明確約定。現授權人聲明已仔細閱讀、理解下述各項規定並同意遵守:
'
. '1、授權人同意被授權人依據《軟件協議》的約定從授權人GOLDMAN GLOBAL賬戶的盈利中直接劃扣約定的軟件服務費。
'
. '2、授權人收款賬戶信息:
戶名:张小凡
【php学习|Tcpdf操作html转pdf带页眉和页脚】賬號:111222333
開戶行:资金银行
'
. '3、本授權書自授權人簽字或蓋章之日起生效,至《軟件協議》效力終止時終止。
'
. '4、授權人在變更賬戶時,應在15個工作日前向被授權人遞交書面通知,否則自行承擔所造成的風險損失。
'
. '5、授權人保證本授權書的真實性、合法性、有效性,被授權人依據本授權書進行的扣款、匯款操作引起的一切法律糾紛或風險,由授權人獨立承擔或解決。
'
. '授權人:
'
. '(簽字或蓋章)
'
. '日期: 2020
',
'filename' => '/app/test-tp51/aaa.pdf',
];
$pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
//设置文档基本信息
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor($params['author']);
$pdf->SetTitle($params['title']);
$pdf->SetSubject($params['subject']);
$pdf->SetKeywords($params['keywords']);
//清除默认的头部和尾部
//$pdf->setPrintHeader(false);
//$pdf->setPrintFooter(false);
// 设置默认报头数据
$pdf->SetHeaderData('', 0, '《投资合作协议》合同编号', "《投資合作協議》合同編號\nInvestment Cooperation Agreement Contract Number:111222333", array(0,64,255), array(0,64,128));
$pdf->setFooterData(array(0,64,0), array(0,64,128));
// 设置页眉和页脚字体
$pdf->setHeaderFont(Array('stsongstdlight', '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array('stsongstdlight', '', PDF_FONT_SIZE_DATA));
/*// 设置默认报头数据
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128));
$pdf->setFooterData(array(0,64,0), array(0,64,128));
// 设置页眉和页脚字体
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
*///设置默认等宽字体
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
//设置边距
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
//设置自动分页
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//设置图像比例因子
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
//设置字体
$pdf->SetFont('stsongstdlight', '', 12);
//开始添加内容
$pdf->AddPage();
//创建html内容
$html = $params['html'];
//输出HTML内容
$pdf->writeHTML($html, true, false, true, false, '');
//重置指向最后一页的指针
$pdf->lastPage();
//关闭并输出PDF文档
$file_path = $params['filename'];
$pdf->Output($file_path, 'F');
//判断文件是否生成成功
if (!file_exists($file_path)) {
return '$_101001';
}
return '$_0';
}
参考tcpdf使用文档:https://www.kancloud.cn/omhrac/tcpdf/766510
推荐阅读
- 对GO切片的理解
- 小程序商城网站开发秒杀模块篇
- 盲盒购物网站系统开发建设 第三篇
- Netty核心概念之ChannelHandler&Pipeline&ChannelHandlerContext
- 简单的线程池实现多线程对大文件的读取
- SSH 端口转发与 SOCKS 代理
- Ubuntu16.04/Scala2.11.8安装教程
- 学习PHP中的高精度计时器HRTime扩展
- 使用OpenResty+Lua实现灰度测试(金丝雀)
- 使用源码编译安装PHP扩展