首先需要安装wkhtmltopdf插件。安装参考链接:/postedit/103162085
生成pdf选择wkhtmltopdf的原因是,wkhtmltopdf对样式能够很好的体现。mpdf对样式的呈现不足。
php后台代码调用wkhtmltopdf,将静态html转为pdf。
//生成pdf的函数,$html为需要写入到pdf文件里的字符串function generatePdf($html){//将字符串$html里的内容写入到$filename_path文件里,该文件为htmlfile_put_contents("{$filename_path}.html", $html);//wkhtmltopdf将生成的html文件转为相应的pdfshell_exec("wkhtmltopdf -q {$filename_path}.html {$filename_path}.pdf");//判定指定的路径下是否存在相应的pdfif(file_exists("{$filename_path}.pdf")){//设置header信息header("Content-type:application/pdf");//设置下载的文件名称header("Content-Disposition:attachment;filename={$filename}.pdf");//火狐浏览器下文件名设定if (stripos($_SERVER["HTTP_USER_AGENT"], 'Firefox')) {header("Content-Disposition: attachment;filename*={$filename}.pdf");}//safari浏览器默认不支持汉字名,所以safari下文件名设为拼音if (stripos($_SERVER["HTTP_USER_AGENT"], 'Macintosh')) {//通过一个汉字转为拼音的共同函数,获取汉字相应的拼音,参考链接:/postedit$pinyin = new Pinyin();$name_py = $pinyin->getpy($name,true,true) . '\'s ';$filename = '2-' . $name_py;header("Content-Disposition: attachment; filename={$filename}.pdf");}//下载文件到本地echo file_get_contents("{$filename_path}.pdf");//删除下载Pdf产生在服务器上的临时文件unlink("{$filename_path}.pdf");unlink("{$filename_path}.html");}exit;}