6

我知道有很多关于这个问题的帖子。但是有人可以帮我设置这个http://www.rustyparts.com/pdf.php脚本在我的本地主机上工作。我只是花了整整一周的时间来解决这个问题。我已经下载了 imagemagic、ghostscript、activeperl、...、一切,但仍然无法制作简单的示例来工作。

4

4 回答 4

10

通过系统调用使用wkhtmltopdf 。有关安装帮助,请参阅如何在基于 linux(共享主机)的 Web 服务器上安装 wkhtmltopdf

wkhtmltopdf 是一个命令行程序,它允许从 url、本地 html 文件或标准输入创建 pdf。它使用 WebKit 引擎生成类似于渲染的 pdf。

在此处查看此页面中的示例。

在 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();
}
于 2010-12-27T22:22:49.017 回答
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
于 2010-12-27T22:25:49.307 回答
1

DocRaptor.com是一个不错的选择 - 它使用 Prince XML,因此质量比其他工具更好,而且它是一个 Web 应用程序,因此无需下载。它也适用于任何语言。

于 2011-01-19T02:01:17.457 回答
0

此外,还有另一个生成 PDF 文件的库:TCPDF。很好,很简单。你可以在周围找到很多例子。

于 2010-12-27T22:28:15.273 回答