在php中将html转换为pdf?

在php中将html转换为pdf?,php,html,pdf,pdf-generation,html2pdf,Php,Html,Pdf,Pdf Generation,Html2pdf,我知道有很多关于这个问题的帖子。但是有人能帮我设置这个脚本在我的本地主机上工作吗?我刚刚花了整整一周的时间来解决这个问题。我已经下载了imagemagic、ghostscript、activeperl等等,但仍然无法制作简单的示例 通过系统调用使用。有关安装帮助,请参阅 wkhtmltopdf是一个命令行程序 它允许从 url、本地html文件或标准文本。信息技术 生成类似pdf的格式副本,其中包含 WebKit引擎 请参阅本页中的示例 在Ubuntu上测试的php代码(您需要将/tmp/更改为

我知道有很多关于这个问题的帖子。但是有人能帮我设置这个脚本在我的本地主机上工作吗?我刚刚花了整整一周的时间来解决这个问题。我已经下载了imagemagic、ghostscript、activeperl等等,但仍然无法制作简单的示例

通过系统调用使用。有关安装帮助,请参阅

wkhtmltopdf是一个命令行程序 它允许从 url、本地html文件或标准文本。信息技术 生成类似pdf的格式副本,其中包含 WebKit引擎

请参阅本页中的示例

在Ubuntu上测试的php代码(您需要将
/tmp/
更改为Windows上的临时目录):

还有一种方法可以避免使用系统调用,这是一种更简单(更安全!)的选择

简单但强大:


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

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

Ohhh,另一个php pdf库:(((但我需要创建一个将html页面导出为pdf的系统,用户点击网站上的链接,然后生成pdf文件?小心那个里的单引号。若你们想要变量替换,那个么那个些将必须是双引号。好吧,酷,它看起来很棒,我可以在我的网站上使用这个库吗,我不是php专家,我只是在学习一些。)stuff@ncuesta修复。@用户这根本不是一个库,它是一个独立的二进制文件,您可以通过系统调用从PHP中调用,正如我所示。许多html2pdf都使用自己的渲染引擎,这一个使用Chrome、Safari和其他主要浏览器中使用的优秀WebKit引擎。我没有使用PHP进行系统调用,所以我不知道如何使用在本地主机上安装是简单的,首先检查这是一个不再被维护的库。它的最后一个版本是从2006开始的!我会考虑一个更新的和活跃的。如果你决定不继续使用这个库,你现在可以在这里找到一个很好的列表:看起来你正在尝试WKHTMLTOPDF,但是有还有许多纯PHP解决方案。这看起来很棒,在本地主机上安装简单吗?然后在服务器上安装?是的,在根文件夹中提取它,然后就可以了。很酷,我会看一看,看看这个,tnx mate:)我得到这个:preg_match()参数2应为字符串,数组在第970行的C:\xampp\htdocs\cpt\html2pdf\html2pdf.class.php中给出。如果您的HTML无效,您必须使其保持有效才能成功转换,请检查此网站:
$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);
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();
}
$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