我知道有很多关于这个问题的帖子。但是有人可以帮助我在我的本地主机上设置这个http://www.rustyparts.com/pdf.php脚本吗?我已经花了整整一周的时间来解决这个问题。我已经下载了imagemagic、ghostscript、activeperl等所有必要的工具,但是仍然无法使简单的示例正常工作。
我知道有很多关于这个问题的帖子。但是有人可以帮助我在我的本地主机上设置这个http://www.rustyparts.com/pdf.php脚本吗?我已经花了整整一周的时间来解决这个问题。我已经下载了imagemagic、ghostscript、activeperl等所有必要的工具,但是仍然无法使简单的示例正常工作。
通过系统调用使用wkhtmltopdf。需要安装帮助,请参见如何在基于Linux(共享主机)的Web服务器上安装wkhtmltopdf。
wkhtmltopdf是一个命令行程序,允许从URL、本地HTML文件或stdin创建PDF。它生成像WebKit引擎渲染的PDF。
请查看此页面中的示例here。
在Ubuntu上测试的PHP代码(您需要将/tmp/
更改为Windows上的临时目录):
$url = 'http://www.google.com';
$pdffile = tempnam('/tmp/', 'wkhtmltopdf_');
$handle = popen("wkhtmltopdf $url $pdffile 2>&1", "r");
while (!feof($handle))
fread($handle, 4096);
pclose($handle);
header('Content-type: application/pdf');
$file = fopen($pdffile, "r");
while(!feof($file))
print fread($file, 4096);
unlink($pdffile);
还有 php绑定库,可以避免自己调用系统调用,这是一个更简单(也更安全!)的选择。
try {
$wkhtmltopdf = new Core_Wkhtmltopdf(array('path' => APPLICATION_PATH . '/../public/uploads/'));
$wkhtmltopdf->setTitle("Title");
$wkhtmltopdf->setHtml("Content");
$wkhtmltopdf->output(Wkhtmltopdf::MODE_DOWNLOAD, "file.pdf");
} catch (Exception $e) {
echo $e->getMessage();
}
简单而强大:http://html2pdf.fr/zh-cn/default
$html = file_get_contents("valid.html");
require_once("html2pdf.class.php");
$html2pdf = new HTML2PDF("P", "A4", "en", array(10, 10, 10, 10));
$html2pdf->setEncoding("ISO-8859-1");
$html2pdf->WriteHTML($html);
$html2pdf->Output("pdf/PDF.pdf", "F"); //output to file
$html2pdf->Output(); //output to browser