PHP将某个页面导出为pdf文件

做旅游平台服务系统,老板出需求让把行程单导出成pdf格式的文件。好在系统是使用thinkphp 3.2进行开发,PHP的扩展组件还是比较强大的,在网上找到了一个第三方类库mpdf,我使用的是6.0的版本,现在贴出代码分享。

类库存放路径:xxxx\ThinkPHP\Library\Vendor\mpdf文件夹(分享插件资源会在末尾贴给大家)

控制器方法:

public function export_travel(){//页面按钮点击,跳转这个方法,think模板文件夹里最好放一个模板文件,起名为export_travel.html	
$name = "xxxxxx行程单";// $html = $this->fetch();//获取视图的渲染模板 export_pdf($name,$html);//export_pdf是我写在公共函数库的,以便其他地方也调用。}公共函数:
function export_pdf($name,$html,$type){
	    $style = "border-bottom: 1px solid #4F81BD;";
		$header='
'.($type ? "" :$name).'

'; $footer=''.($type ? "" : '' ) .'
'.($type ? "" :$name).'页码:{PAGENO}/{nb}
'; Vendor('mpdf.mpdf'); //设置中文编码 $mpdf=new \mPDF('zh-CN','A4','', '宋体', 25,25,20,20); $mpdf -> useAdobeCJK = TRUE; $mpdf -> autoScriptToLang = true; $mpdf -> autoLangToFont = true; $mpdf->SetDisplayMode('fullpage'); //$mpdf->WriteHTML(''); $mpdf->SetHTMLHeader($header); $mpdf->SetHTMLFooter($footer); $mpdf->WriteHTML($html);//可以看到,$html是作为一个变量传递的,所以你也可以不必像我一样去获取页面模板,如果你的内容足够简单,也可以自己在方法里赋值传递。 //删除pdf第一页(由于设置pdf尺寸导致多出了一页) //$mpdf->DeletePages(1,1); //$mpdf->showWatermarkText = true; //$mpdf->SetAutoFont(); $name = $name.'.pdf'; $mpdf->Output($name,'I'); exit; }


这样就可以实现导出功能。在网页中最好将左右的图片路径设置为绝对路径,这样就可以将图片也一并导出,布局样式尽量采用标签内嵌。

下载链接:https://download.csdn.net/download/zb27149/10407577


你可能感兴趣的:(php,插件,PHP,导出为文件,pdf)