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

Save Web page directly to PDF using JS

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

我所做的是-

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

但它为我提供了打印或将页面另存为 PDF 的选项。

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

JavaScript有解决办法吗?

在此先感谢您的帮助。

简短的回答是否定的,您无法阻止用户仅使用 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, or TCPDF。随意 Google 其他人,特别是如果您不使用 PHP.

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

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

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

  1. 通过为 Google Chrome 或 Safari(两种浏览器都能够 "print" 将页面保存到PDF文件)。也许您甚至可以尝试显示此指令并调用打印对话框

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

  3. 从数据生成 PDF