我正在尝试使用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的任何想法吗?
干杯
答案 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处理页面的链接,该页面引用从远程调用创建的文件。
这可行,但可能有点多。
问候。