【发布时间】:2012-06-04 16:53:18
【问题描述】:
Chrome 允许用户按 Ctrl + P 并选择“保存为 PDF”。
可以通过html按钮实现这个功能吗?
我希望用户只需点击一个按钮并直接转到另存为 PDF 提示符(其中文件名由 PHP 设置,而不是由 Chrome 自动设置)。所以用户基本上只是点击按钮并在提示窗口上点击保存。
这可能吗? 我可以跳过前面的步骤吗?
【问题讨论】:
标签: php html google-chrome pdf
Chrome 允许用户按 Ctrl + P 并选择“保存为 PDF”。
可以通过html按钮实现这个功能吗?
我希望用户只需点击一个按钮并直接转到另存为 PDF 提示符(其中文件名由 PHP 设置,而不是由 Chrome 自动设置)。所以用户基本上只是点击按钮并在提示窗口上点击保存。
这可能吗? 我可以跳过前面的步骤吗?
【问题讨论】:
标签: php html google-chrome pdf
不,这是不可能的。
但是,您可以让用户选择将 HTML 文件输出下载为 PDF 文件。周围有几家图书馆,Prince 是最好的但价格昂贵,请查看DOMPDF。
【讨论】:
window.print(),不带任何选项。
当您的用户可以在浏览中按 ctrl+P 时,生成页面(在服务器上)的 PHP 进程已经关闭。
除了 PHP 不直接控制浏览器这一事实之外。它只是以 HTML/CSS 的形式向他们发送信息,在这种情况下很重要 JavaScript。
使用 JavaScript,您可以触发浏览器的正常打印行为,但您无法控制它。
另一种方法是在服务器上生成 PDF 并将其作为文件发送到浏览器。在这种情况下,浏览器要么询问用户是否要打开它,要么询问用户是否要下载。
我个人使用fPDF定制各种开源电商软件的PDF发票。比如PrestaShop。
您真正需要做的就是从 (fPDF](http://www.fpdf.org/) 下载该库,但是看到它的实际效果并能够更改/调整工作版本可能会对您有所帮助,因此您可以在文件夹 classes 内的新 PrestaShop 安装中查找 PDF 发票,文件名为 PDF.php。
【讨论】:
我浪费了几个小时试图在服务器上转换为 pdf,但没有运气,因为我的视图包含一些执行主要渲染的 jquery 函数。我想提供一个按钮来使用浏览器保存为 pdf,但后来选择在客户端使用 javascript 来渲染为 pdf。在某些情况下,这可能不是最佳解决方案,但在我的情况下看起来是最明智的解决方案。
我刚开始使用 html2pdf.js 的许多库,目前运行良好。
【讨论】: