从html dom创建可打印的PDF

时间:2012-03-17 10:52:10

标签: javascript html pdf printing

我有一个网页,其中动态构建了相当数量的内容(jquery ajax等),并且要求提供它的可打印版本。

我遇到了所有常见的问题:html /打印,我可能(给定时间)绕过,但它让我思考 - 是否有一种方法可以使用javascript获取DOM并从中生成PDF 。这可能是一个愚蠢的问题 - 听起来有点棘手,即使我可以使用javascript构建PDF文件,我也不太确定,然后我会如何将它呈现给用户。

人们怎么想?

2 个答案:

答案 0 :(得分:2)

var doc = new jsPDF();
doc.text(20, 20, 'Hello world!');
doc.text(20, 30, 'This is client-side Javascript, pumping out a PDF.');
doc.addPage();
doc.text(20, 20, 'Do you like that?');
// Output as Data URI
doc.output('datauri');

https://parall.ax/products/jspdf,我认为这会对你有所帮助

答案 1 :(得分:0)

This是我几天前提出的关于类似网站/问题的问题。

我的解决方案是:(1)在Javascript中,设置cookie然后使用location.href = ...;(而不是AJAX)调用PHP脚本然后(2)让PHP脚本访问cookie以确定排序需要报告,然后回显一个表单,提示用户使用正确的标题下载文件。 PHP类似于以下内容:

header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=test.doc");

echo "<html>";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">";
echo "<body>";
echo "Testing-2-3!";
echo "</body>";
echo "</html>";

事实证明使用AJAX无法获得我想要的东西,因为AJAX从不允许你提示用户。

您可以使用此方法执行类似操作,但在您的情况下,您将生成PDF而不是.doc文件(或下载预先准备好的文件)。

这种方法的一个优点当然是它不涉及页面重新加载。