我试图找到一些解决方法来或多或少地达到相同的结果。这些解决方案应该可以在任何浏览器上正常工作。
看看解决方案4。它似乎是最接近你想要实现的目标。 (带有工作示例)
解决方案一:我认为我有一个并不完美的解决方案,但可能可以完成工作。
在打印之前,您可以将 iframe 替换为 iframe 的图像。我发现这个图书馆叫iframe2image
: https://github.com/twolfson/iframe2image https://github.com/twolfson/iframe2image.
要捕获打印事件,您可以使用此问题的答案:https://stackoverflow.com/a/23170458/2525304 https://stackoverflow.com/a/23170458/2525304
我还没有机会测试它,但我认为你可以用它来做一些事情。
EDIT:
解决方案2:这是另一个可行的想法。你可以用这个Html 转 PDF API http://pdfcrowd.com/html-to-pdf-api/首先将 iframe 的内容转换为 pdf。然后将此 pdf 包含在 iframe 所在的位置(通过使用PDF.js http://mozilla.github.io/pdf.js/例如)并打印页面。
这是另一个 api 执行此操作:http://www.convertapi.com/web-pdf-api http://www.convertapi.com/web-pdf-api
EDIT 2:
解决方案 3(工作示例):我刚刚发现这个网站 https://www.web2pdfconvert.com/pdf-button可以让你嵌入一个Save page to PDF
按钮将返回用户所在页面的 pdf 版本。您可以用此按钮替换页面上的打印按钮,并告诉用户打印生成的 pdf。
工作示例 http://pathologist-crocodile-13111.bitballoon.com/
唯一的问题是用户被发送到另一个网站来下载文件。我认为您在付款时可以获得 pdf 文件的直接链接基本会员资格 http://www.web2pdfconvert.com/membership(5 美元/月)。
可能有类似的服务免费提供直接链接,但我没有找到。
EDIT 3:
解决方案 4(带有工作示例):
我刚刚找到一个网站,它提供了页面生成的 PDF 文件的直接链接。更多信息请点击这里:http://pdf-ace.com/save-as-pdf-button/ http://pdf-ace.com/save-as-pdf-button/
工作示例 http://porter-frank-45400.bitballoon.com/(我更换了Print
button)