tcpdf html转成pdf,ThinkPHP5使用TCPDF将html转换为pdf

代码 class Index extends Controller

{

public function index(){

if($this->request->isPost()){

$param=$this->request->param();

$file=$this->request->file();

$imgPath=$this->saveImg($file);

$this->view->assign([

'title'=>$param['title'],

'subtitle'=>$param['subtitle'],

'img'=>'/public/template/upload/'.$imgPath

]);

//渲染模板

$content=$this->fetch('template/temp1');

//生成html文件

$File=new \think\Template\driver\File();

$File->write(ROOT_PATH.'public/template/html/'.md5($param['title']).'.html',$content);

//生成pdf文件

$this->htmlToPdf($content,'pdf测试',$param['title']);

//返回结果

return '生成pdf文件成功';

}else{

return $this->view->fetch();

}

}

//保存表单的图片

public function saveImg($files){

$filePath=ROOT_PATH.'public/template/upload/';

foreach ($files as $file){

$info=$file->move($filePath);

if($info){

echo $info;

}

}

return $info->getSaveName();

}

//生成pdf

public function htmlToPdf($html='',$title="标题",$fileName=""){

$pdf=new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// 设置打印模式

//设置文件信息,头部的信息设置

$pdf->SetCreator(PDF_CREATOR);

$pdf->SetAuthor("做者");

$pdf->SetTitle($title);

$pdf->SetSubject('TCPDF Tutorial');

$pdf->SetKeywords('TCPDF, PDF, example, test, guide');//设置关键字

// 是否显示页眉

$pdf->setPrintHeader(false);

// 设置页眉显示的内容

$pdf->SetHeaderData('logo.png', 60, 'owndraw.com', '', array(0,64,255), array(0,64,128));

// 设置页眉字体

$pdf->setHeaderFont(Array('deja2vusans', '', '12'));

// 页眉距离顶部的距离

$pdf->SetHeaderMargin('5');

// 是否显示页脚

$pdf->setPrintFooter(true);

// 设置页脚显示的内容

$pdf->setFooterData(array(0,64,0), array(0,64,128));

// 设置页脚的字体

$pdf->setFooterFont(Array('dejavusans', '', '10'));

// 设置页脚距离底部的距离

$pdf->SetFooterMargin('10');

// 设置默认等宽字体

$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

// 设置行高

$pdf->setCellHeightRatio(1);

// 设置左、上、右的间距

$pdf->SetMargins('10', '10', '10');

// 设置是否自动分页 距离底部多少距离时分页

$pdf->SetAutoPageBreak(TRUE, '15');

// 设置图像比例因子

$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

$pdf->setFontSubsetting(true);

$pdf->AddPage("A4","Landscape",true,true);

// 设置字体

$pdf->SetFont('stsongstdlight', '', 14, '', true);

$pdf->writeHTML($html);//HTML生成PDF

//$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);

$showType= 'F';//PDF输出的方式。I,在浏览器中打开;D,以文件形式下载;F,保存到服务器中;S,以字符串形式输出;E:以邮件的附件输出。

ob_end_clean();

$path=ROOT_PATH.'public/template/pdf/';

//判断保存目录是否存在,不存在则进行建立

if(!is_dir($path)){

mkdir($path,'0777',true);

}

$pdf->Output($path."{$fileName}.pdf", $showType);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值