WkHtmlToPdf在windows环境下怎么用,php语言实现?

刚刚阅读1回复0
披着凉皮的糖
披着凉皮的糖
  • 管理员
  • 注册排名4
  • 经验值449252
  • 级别管理员
  • 主题89850
  • 回复1
楼主

WkHtmlToPdf在windows环境下怎么用,php语言实现?

安装wkhtmltopdf

WkHtmlToPdf在windows环境下怎么用,php语言实现?

#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;

}

0
回帖

WkHtmlToPdf在windows环境下怎么用,php语言实现? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息