【问题标题】:Chrome - Save to PDF function use in a websiteChrome - 在网站中使用保存为 PDF 功能
【发布时间】:2012-06-04 16:53:18
【问题描述】:

Chrome 允许用户按 Ctrl + P 并选择“保存为 PDF”。

可以通过html按钮实现这个功能吗?

我希望用户只需点击一个按钮并直接转到另存为 PDF 提示符(其中文件名由 PHP 设置,而不是由 Chrome 自动设置)。所以用户基本上只是点击按钮并在提示窗口上点击保存。

这可能吗? 我可以跳过前面的步骤吗?

【问题讨论】:

    标签: php html google-chrome pdf


    【解决方案1】:

    不,这是不可能的。

    但是,您可以让用户选择将 HTML 文件输出下载为 PDF 文件。周围有几家图书馆,Prince 是最好的但价格昂贵,请查看DOMPDF

    【讨论】:

    • 谢谢。只是为了记录,你知道为什么不可能吗?
    • DOMDocument 是一个 XML 库。有一些库可以让您输入 XML/HTML 代码并为您构建 PDF 文件。
    • @hermann 因为浏览器API只提供window.print(),不带任何选项。
    • 我经常看到使用 fPDF 或类似的库。它们允许您构建 PDF,但它的工作流程类似于 PostScript(生成 PDF 文件的语言)。
    • @yms PDF 是带有嵌入图像和额外功能(文件自毁、密码、无打印等)的编译后记。各种(当前)Linux 实现使用 PostScript 引擎作为生成 PDF 文件的基础。同样值得注意的信息是,Adobe 需要一套名为 GhostScript 的工具作为 PDF 文件和 PostScript 文件的通用资源。有 PHP 库可以将 PostScript 转换为 PDF(无需配置/编码)。
    【解决方案2】:

    当您的用户可以在浏览中按 ctrl+P 时,生成页面(在服务器上)的 PHP 进程已经关闭。

    除了 PHP 不直接控制浏览器这一事实之外。它只是以 HTML/CSS 的形式向他们发送信息,在这种情况下很重要 JavaScript

    使用 JavaScript,您可以触发浏览器的正常打印行为,但您无法控制它。

    另一种方法是在服务器上生成 PDF 并将其作为文件发送到浏览器。在这种情况下,浏览器要么询问用户是否要打开它,要么询问用户是否要下载。

    我个人使用fPDF定制各种开源电商软件的PDF发票。比如PrestaShop

    您真正需要做的就是从 (fPDF](http://www.fpdf.org/) 下载该库,但是看到它的实际效果并能够更改/调整工作版本可能会对您有所帮助,因此您可以在文件夹 classes 内的新 PrestaShop 安装中查找 PDF 发票,文件名为 PDF.php。

    【讨论】:

    • 这种方法很有趣,任何可能有帮助的链接/来源?
    • 关于在服务器上创建PDF文件的那个?
    • 是的,任何关于这方面的资料都会非常有帮助。这样我就可以在服务器端生成 PDF 并提示用户下载它们,就像你说的那样。公平地解决我的问题。
    • 好吧,我必须警告你,我使用过的那些(如 [fPDF])(fpdf.org)有一点学习曲线。其中最烦人的地方在于,您正在设置服务器将 PDF 文档推送到浏览器,这意味着使用 echo**/**var_dump 进行调试非常痛苦。
    • 感谢您的帮助。好吧,我想从现在开始我得慢慢来。
    【解决方案3】:

    我浪费了几个小时试图在服务器上转换为 pdf,但没有运气,因为我的视图包含一些执行主要渲染的 jquery 函数。我想提供一个按钮来使用浏览器保存为 pdf,但后来选择在客户端使用 javascript 来渲染为 pdf。在某些情况下,这可能不是最佳解决方案,但在我的情况下看起来是最明智的解决方案。

    我刚开始使用 html2pdf.js 的许多库,目前运行良好。

    【讨论】:

      猜你喜欢
      • 2020-08-31
      • 2014-09-20
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 2015-09-17
      • 2018-09-13
      • 2014-12-01
      相关资源
      最近更新 更多