51单片机可以做网站,有限责任公司的设立条件,wordpress怎么加入引导页面,晋城网站建设科技有限公司在公司项目中发现有下载pdf文件的功能#xff0c;但是不能识别CSS样式#xff0c;导致下载的pdf文件格式显得很别扭#xff0c;虽然能看但是难看。然后就是百度啊#xff0c;google啊#xff0c;最后找到一款能够识别CSS样式的软件—wkhtmltopdf。wkhtmltopdf可以直接把任…在公司项目中发现有下载pdf文件的功能但是不能识别CSS样式导致下载的pdf文件格式显得很别扭虽然能看但是难看。然后就是百度啊google啊最后找到一款能够识别CSS样式的软件—wkhtmltopdf。wkhtmltopdf可以直接把任何一个可以在浏览器中浏览的网页直接转换成一个pdf首先说明一下它不是一个php 类而是一个把html页面转换成pdf的一个软件需要安装在服务器上但是它并不是一个简单的桌面软件而且它直接cmd批处理的使用php中的 shell_exec()函数就可以调用它。
一下载并安装wkhtmltopdf
1、下载地址http://wkhtmltopdf.org/downloads.html 如图
2、上面有各种平台下安装的安装包英文不好的直接谷歌翻译一下。下面以 windows7平台上使用举例我的下载的是stable(稳定版)的wkhtmltox-0.12.4_msvc2015-win64.exe这个版本。系统时几位就下载几位的安装包。下载好以后直接安装就可以了注意安装路径要知道路径中不能含有中文和空格所以不要安装在Program Files目录下安装路径在下面会用到的。
3、安装好以后需要在系统环境变量变量名为”Path”的后添加;D:\wkhtmltopdf\bin 也就是你安装的目录。安装好以后重启电脑。 这样就可以直接不带安装路径使用了。
二、PHP中测试使用效果
php里调用是很简单的用shell_exec这个函数就可以了如果shell_exec函数不能用看看php.ini里是否补禁用了找到php.ini中的shell_exec函数取消注释就可以了一般都是可以直接用的。简单举例
?php shell_exec(wkhtmltopdf http://www.baidu.com/ 1.pdf) ?
你会发现在你php文件的同级目录中会生成一个1.pdf的文件 下面代码举例介绍如何在网站开发中使用它主要功能是截取网页的部分传递到php中处理成pdf文档 html页面代码
!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
html xmlnshttp://www.w3.org/1999/xhtmlheadscript srcjs/jquery-2.1.4.js/scriptlink relstylesheet hrefcss/common.css relexternal nofollow relexternal nofollow link relstylesheet hrefcss/myCenter.css relexternal nofollow relexternal nofollow meta http-equivContent-Type contenttext/html; charsetutf-8 /titlePHP编程/title
/head
body
!--startprint--
div classright5 stylemargin: 0px 200px; div classright_top stylebackground-image:url(images/right-di.png);h2 styletext-align:centerPHP编程/h2/divdiv classprintinput typebutton value下载 iddown alignright stylebackground-color:orange;color:white;text-align:right/div div classHollanderdiv stylefont-size:20px;PHPPHP: Hypertext Preprocessor的缩写中文名“超文本预处理器”/divdiv idchart/divpnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;PHPPHP: Hypertext Preprocessor的缩写中文名“超文本预处理器”是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点入门门槛较低易于学习使用广泛主要适用于Web开发领域。PHP的文件后缀名为php。/p/div table classtbl1 styleborder:2px solid black;tr node-typetoolBartd classtbl11 styleborder:2px solid blue;php基础:/tdtd classtbl12 styleborder:2px solid green;p①PHP语言简介 ②PHP程序安装 ③PHP语法了解 ④PHP变量使用 ⑤PHP数据类型分析 ⑥PHP常量使用 ⑦PHP字符串使用 ⑧PHP运算符使用 ⑨PHP数组使用 ⑩PHP数组排序 /p/td/td/trtr node-typetoolBartd classtbl11 styleborder:2px solid blue;php进阶:/tdtd classtbl12 styleborder:2px solid green;p①PHP语言简介 ②PHP程序安装 ③PHP语法了解 ④PHP变量使用 ⑤PHP数据类型分析 ⑥PHP常量使用 ⑦PHP字符串使用 ⑧PHP运算符使用 ⑨PHP数组使用 ⑩PHP数组排序 /p/td/td/trtr node-typetoolBartd classtbl11 styleborder:2px solid blue;php源码:/tdtd classtbl12 styleborder:2px solid green;p①PHP语言简介 ②PHP程序安装 ③PHP语法了解 ④PHP变量使用 ⑤PHP数据类型分析 ⑥PHP常量使用 ⑦PHP字符串使用 ⑧PHP运算符使用 ⑨PHP数组使用 ⑩PHP数组排序 /p/td/td/trtr node-typetoolBartd classtbl11 styleborder:2px solid blue;php插件:/tdtd classtbl12 styleborder:2px solid green;p①PHP语言简介 ②PHP程序安装 ③PHP语法了解 ④PHP变量使用 ⑤PHP数据类型分析 ⑥PHP常量使用 ⑦PHP字符串使用 ⑧PHP运算符使用 ⑨PHP数组使用 ⑩PHP数组排序 /p/td/td/trtr node-typetoolBartd classtbl11 styleborder:2px solid blue;选择php项:/tdtd classtbl12 stylecolor:red;border:2px solid green;aspan项目介绍/span/a/td/td/tr/table
/div
!--endprint--form actionpdf.php methodpost namehld_res idhideforminput typehidden idhide_content namehtml//form
/body
script$(function () {//获取需要传递的Html代码 通过!--startprint--!--endprint--截取bdhtmlwindow.document.body.innerHTML; sprnstr!--startprint--; eprnstr!--endprint--; prnhtmlbdhtml.substr(bdhtml.indexOf(sprnstr)17); prnhtmlprnhtml.substring(0,prnhtml.indexOf(eprnstr)); //将获取的html代码添加到隐藏域中传给php文件处理$(#hide_content).val(prnhtml);}); $(#down).click(function(){// alert(12345);$(#hideform).submit();}); /script
/html
php脚本代码
?php// header(content-type:text/html;charsetutf-8);//转成pdf$html$_POST[html];//Turn on output buffering// var_dump($html);die;ob_start();/*这儿引入生成的Html的样式表 *路径可以是绝对路径也可以是相对路径.*也可以把样式表文件复制到临时html文件的目录下,即这儿的demo文件目录下默认.*也可以直接把样式写在html页面中直接传递过来这儿可以引入生成的Html的样式表.*/// $html// link relstylesheet hrefcss/common.css relexternal nofollow// link relstylesheet hrefcss/myCenter.css relexternal nofollow// meta http-equivContent-Type contenttext/html; charsetutf-8 /.$html;$htmlmeta http-equivContent-Type contenttext/html; charsetutf-8 /.$html;//这儿引入生成的Html的样式表 //$html ob_get_contents();$filename down_report;//save the html page in tmp folder 保存的html临时文件位置 可以是相对路径也是可以是绝对路径 下面用相对路径file_put_contents({$filename}.html, $html);//Clean the output buffer and turn off output bufferingob_end_clean();//convert HTML to PDF$suc shell_exec(wkhtmltopdf {$filename}.html {$filename}.pdf);// $suc shell_exec(wkhtmltopdf https://www.baidu.com/ 1.pdf);if(file_exists({$filename}.pdf)){header(Content-type:application/pdf);header(Content-Disposition:attachment;filename{$filename}.pdf);echo file_get_contents({$filename}.pdf);echo {$filename}.pdf;}else{echo false;exit;}
?
点击页面中的下载按钮即可完成下载:
下载下来的文件如下
打开查看效果
部分内容参考与《 最好用Html转pdf的工具——wkhtmltopdf》具体情况可以看看这篇博文。这里我就自己做一下记录。