我知道有很多关于这个问题的帖子。但是有人可以帮我设置这个http://www.rustyparts.com/pdf.php脚本来处理我的本地主机。我只花了一周时间来处理这个问题。我已经下载了imagemagic, ghostscript,activeperl,...,一切,但仍然无法使简单的例子工作。
答案 0 :(得分:10)
通过系统调用使用wkhtmltopdf。有关安装帮助,请参阅How to install wkhtmltopdf on a linux based (shared hosting) web server。
wkhtmltopdf是一个命令行程序 这允许从一个创建一个pdf url,本地html文件或stdin。它 生成一个类似于rendred的pdf WebKit引擎。
请参阅此页面中的示例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 bindings不需要自己使用系统调用,这是一个更简单(更安全!)的选项。
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();
}
答案 1 :(得分:3)
简单但功能强大:http://html2pdf.fr/en/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
答案 2 :(得分:1)
DocRaptor.com是一个不错的选择 - 它使用Prince XML,因此质量优于其他工具,它是一个Web应用程序,所以无需下载。它也适用于任何语言。
答案 3 :(得分:0)
此外,还有另一个生成PDF文件的库:TCPDF。很好,很简单。你可以找到很多例子。