安装wkHTMLtopdf
#apt-getinstallwkhtmltopdf
从HTML生成PDF文件的基本语法如下:
#wkhtmltopdfinput-fileoutput-file
大家可以从任何网页生成PDF:
#wkhtmltopdfexample.comexample.pdf
或从本地html文件:
#wkhtmltopdfexample.htmlexample.pdf
以上命令只能在Linuxbox图形环境中使用。如果大家在一个VPS或专用服务器上生成PDF,如果大家执行该命令,大家将得到从下错误:
wkhtmltopdf:cannotconnecttoXserver
为了解决这个问题,大家需要使用一个名为xvfb的工具。
Xvfb是一个X服务器,能够运行在没有显示硬件和没有物理输入设备的机器上。它使用虚拟内存来模拟一个dumbframebuffer。
回到顶部
安装xvfb
#apt-getinstallxvfb
接下来,大家需要创建一个shell脚本:
xvfb-run–server-args=”-screen0,1024x768x24″/usr/bin/wkhtmltopdf$*
然后将它保存在/usr/bin/wkhtmltopdf.sh下
下一步,大家将创建一个symbolic链接,这样大家就可以执行脚本而不用编写的完整路径:
#ln-s/usr/bin/wkhtmltopdf.sh/usr/local/bin/wkhtmltopdf2
让大家尝试执行shell脚本,并看看会发生什么。
#wkhtmltopdf2example.comexample.pdf
Loadingpage(1/2)
Printingpages(2/2)
Done
好,如果能够正确运行。就可以用以下自定义PHP脚本来生成一个PDF文件。
//Turnonoutputbuffering
ob_start();
echo”<html>”;
echo”<head>”;
echo”<linkhref=’http://example.com/style.css’rel=’stylesheet’type=’text/css’>”;
echo”</head>”;
echo”<body>”;
echo”<p>customHTMLtoPDFreport</p>”;
echo”</body>”;
echo”</html>”;
//returnthecontentsoftheoutputbuffer
$html=ob_get_contents();
$filename=date(‘YmdHis’);
//savethehtmlpageintmpfolder
file_put_contents(“/tmp/{$filename}.html”,$html);
//Cleantheoutputbufferandturnoffoutputbuffering
ob_end_clean();
//convertHTMLtoPDF
shell_exec(“wkhtmltopdf2-q/tmp/{$filename}.html/tmp/{$filename}.pdf”);
if(file_exists(“/tmp/{$filename}.pdf”)){
header(“Content-type:application/pdf”);
header(“Content-Disposition:attachment;filename='{$filename}.pdf'”);
echofile_get_contents(“/tmp/{$filename}.pdf”);
}else{
exit;
}
模糊背景css,css做个圆弧,educoder闯关答案css,写css有什么好处,Javascript和css哪个难,接外部css样式表,css做响应式将元素隐藏