企业网站建设的重要性,wordpress 主题制作 functions.php,展示型网页开发公司,apache与iis做网站最近在做项目有个需求#xff0c;项目中需要根据设置的html合同模板自动生成PDF合同供客户下载签署#xff0c;并根据回传的已签署合同尾页来替换原来未签署合同的尾页#xff0c;合成新的已签署合同文本。
读取两个PDF文件并合成的 具体代码记录如下#xff1a;
use set…最近在做项目有个需求项目中需要根据设置的html合同模板自动生成PDF合同供客户下载签署并根据回传的已签署合同尾页来替换原来未签署合同的尾页合成新的已签署合同文本。
读取两个PDF文件并合成的 具体代码记录如下
use setasign\Fpdi\Fpdi;
use think\Image;/** 读取pdf文件 并合成pdf页面* $filename 原始pdf文件* $type: 生成pdf的类型 I:直接预览PDF文件 F:PDF文件保存到本地 S:返回PDF文件流 D:直接下载PDF文件* $add_filePath: 附件文件路径 可为图片或者pdf页面* $add_typeadd 添加新的pdf页面 edit 替换最后一页pdf文件* $newfilename: 生成的新文件名 如果不存在默认替换原始文件*/
function readPDF($filename, $typeI, $add_filePath, $add_typeadd, $newfilename){// 加载现有的PDF文件$pdf new FPDI();$pageCount $pdf-setSourceFile($filename);//unlink($filename);//删除生成的初始pdf文件for ($pageNo 1; $pageNo $pageCount; $pageNo) {// 导入页面$templateId $pdf-importPage($pageNo);$size $pdf-getTemplatesize($templateId);$pdf-AddPage($size[orientation], [$size[width], $size[height]]);// 填充页面$pdf-useTemplate($templateId);// $add_filePath storage/business/seal/img/zhang.png;if($add_filePath){//需要合成图片 替换最后一页的pdf页面if ($pageNo $pageCount $add_typeedit) {//210 297//替换最后一页PDF页面
// $a getimagesize($add_filePath);$pdf-Image($add_filePath, 0, 0, $size[width], $size[height]); //}}}if( $add_typeadd){//附加PDF文件if($add_filePath) {//需要合成图片 新加一个页面$pdf-AddPage();//新添加页面// 填充页面$pdf-Image($add_filePath, 0, 0, $size[width], $size[height]); //}}if($newfilename){$filename $newfilename;}// 保存PDF$pdfContent $pdf-Output($filename, $type, true);//I:直接预览PDF文件、 D:直接下载PDF文件 F:PDF文件保存到本地 S:返回PDF文件流if ($type S) {$pdfContent base64_encode($pdfContent);return $pdfContent;}if($type I){exit;}return ;
}配置
1、加载包文件
composer require setasign/fpdi