使用JS将网页直接保存为PDF

时间:2015-02-15 03:34:46

标签: javascript html html5 pdf

我想将网页直接保存为PDF。

我所做的是 -



<form>
    <input type=button name=print value="Print" onClick="window.print()">
</form>
&#13;
&#13;
&#13;

但是它为我提供了打印选项或将页面保存为PDF格式。

但我想要的是当我点击按钮时,它直接将页面保存为PDF而不显示任何选项。

JavaScript中是否有任何解决方案?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:6)

简短的回答是否定的,你无法阻止用户只使用javascript在浏览器中看到该选项。

稍微长一点的答案是,可以以比javascript更多的方式执行此操作。

使用html2canvas等服务,您可以向服务器上的页面发送POST请求。使用该页面将图像转换为PDF,并将其作为下载文件输出。

假设你正在使用PHP:

<?php
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename='screen-shot.pdf'");
// The above headers will cause the file to automatically be downloaded.
// Use a library to convert the image to a PDF here.

将图片转换为PDF的示例库是mPDFTCPDF。随意谷歌其他人,特别是如果你不使用PHP。

请注意,这个解决方案不如他们自己做出选择,因为质量肯定不会那么好。

答案 1 :(得分:4)

此处必须注意建议的解决方案将HTML转换为图像,然后将光栅图像转换为PDF。

如果您想要保存为可搜索的PDF(因此可以以最佳质量存档和打印)并且文本打印清晰,那么您应该考虑以下选项之一:

  1. 要求用户将页面保存为PDF,方法是为Google Chrome或Safari提供相关说明(两种浏览器都可以将页面“打印”为PDF文件)。也许您甚至可以尝试显示此指令并调用打印对话框

  2. 使用一些客户端JavaScript库通过jsPDF (free, open source)或类似工具

  3. 从数据生成PDF