我想将网页直接保存为PDF。
我所做的是 -
<form>
<input type=button name=print value="Print" onClick="window.print()">
</form>
&#13;
但是它为我提供了打印选项或将页面保存为PDF格式。
但我想要的是当我点击按钮时,它直接将页面保存为PDF而不显示任何选项。
JavaScript中是否有任何解决方案?
提前感谢您的帮助。
答案 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的示例库是mPDF或TCPDF。随意谷歌其他人,特别是如果你不使用PHP。
请注意,这个解决方案不如他们自己做出选择,因为质量肯定不会那么好。
答案 1 :(得分:4)
此处必须注意建议的解决方案将HTML转换为图像,然后将光栅图像转换为PDF。
如果您想要保存为可搜索的PDF(因此可以以最佳质量存档和打印)并且文本打印清晰,那么您应该考虑以下选项之一:
要求用户将页面保存为PDF,方法是为Google Chrome或Safari提供相关说明(两种浏览器都可以将页面“打印”为PDF文件)。也许您甚至可以尝试显示此指令并调用打印对话框
使用一些客户端JavaScript库通过jsPDF (free, open source)或类似工具