HTML2FPDF打印页面结果为pdf

时间:2009-11-11 02:15:58

标签: php pdf-generation

我正在尝试使用HTML2FPDF(http://html2fpdf.sourceforge.net/)来创建页面的PDF,但我似乎无法让它正常工作。

我的页面由jQuery组成,用于显示图表。我希望页面上的图形和其他文本可以导出为PDF格式。

http://portal.flyingstartlifestyle.360southclients.com/leanne/leanne.php< - 页面底部带有html2fpdf代码的图表。

HTML2FPDF代码:

function createPDF() {

 define('ABSPATH', dirname(__FILE__).'/');

 require(ABSPATH.'classes/pdf/html2fpdf.php');

 $pdf = new HTML2FPDF();
 $pdf->AddPage();

 $html = ob_get_contents();
 //$html = htmlspecialchars($html);

 if ($html) {

  $fileName = "testing.pdf";

  $pdf->WriteHTML($html);
  $pdf->Output("pdfs/".$fileName);

  echo "<p>PDF file is generated successfully! <a href=\"pdfs/$fileName\" target=\"_blank\">Click here</a> to open it.</p>";

 } else {

  echo "<p>There has been an error in creating your PDF.</p>";

 };


};

如果我取消隐藏“$ html = htmlspecialchars($ html);”这一行它将pdf打印为页面文本,否则会创建一个空PDF。有关如何将图表转换为PDF的任何想法吗?

干杯

3 个答案:

答案 0 :(得分:2)

几年前,我一直在试图将HTML转换成PDF数天。我想做的事情非常简单 - 将客户的发票制作成PDF文件。顶部有一个图像(徽标),几个段落,还有一个带有收费列表的表格。

墙上形状像我的头一样的洞仍在那里。所有将事物转换为PDF的免费库 - 它们都很糟糕。我找到了一个最糟糕的,它是DomPDF。在经过一周的痛苦和调试之后,至少那个人最终完成了这项工作。不管怎样,它并不快(如果你想生成复杂的PDF,你可能想要在线程外进行)。

答案 1 :(得分:1)

  

我的页面由jQuery组成,用于显示图表。我希望页面上的图形和其他文本可以导出为PDF格式。

jQuery由浏览器解释,而不是由服务器解释。当您发送要呈现为PDF的HTML时,它将不会运行Javascript。你需要找到一种方法来实际生成图像。

答案 2 :(得分:1)

我想我可以看到你可以使用ajax进行远程调用并发送js看到的所有html的情况。

然后远程调用将写入该html的文件。远程调用将发回一个要生成的pdf的文件名。

然后您的js可以提供指向html2pdf处理页面的链接,该页面引用从远程调用创建的文件。

这可行,但可能有点多。

问候。