【发布时间】:2012-06-07 14:40:21
【问题描述】:
是否可以从 Firefox 附加 SDK 进行打印?我浏览了附加 SDK 在线文档,但似乎找不到任何相关内容。
我想做的是从网页(存储在 Javascript 变量中的 PDF 文件)中检索一些数据,然后使用该文件打开系统打印机对话框。
这个可以吗?
【问题讨论】:
标签: firefox printing firefox-addon add-on
是否可以从 Firefox 附加 SDK 进行打印?我浏览了附加 SDK 在线文档,但似乎找不到任何相关内容。
我想做的是从网页(存储在 Javascript 变量中的 PDF 文件)中检索一些数据,然后使用该文件打开系统打印机对话框。
这个可以吗?
【问题讨论】:
标签: firefox printing firefox-addon add-on
附加 SDK 没有任何内置的打印功能。当然,您可以使用chrome authority 做很多事情,例如给定一个浏览器窗口,您可以获得当前打开的窗口的nsIWebBrowserPrint interface 并打印它:
var browserPrint = browserWnd.gBrowser
.contentWindow
.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIWebBrowserPrint);
browserPrint.print(null, listener);
但问题仍然是您需要在浏览器中打开一个网页才能打印它。然而,浏览器不会打开 PDF 文件,这是由插件完成的 - 只有插件(浏览器无权访问)才能打印它。你可以往pdf.js的方向看,但它仍处于早期开发阶段。
page-worker package 看起来是一种将页面加载到隐藏窗口以便打印的明显方法。唯一的问题 - 要访问 nsIWebBrowserPrint,您需要从插件访问页面的 window 对象(不是内容脚本,它没有必要的权限)。 p>
【讨论】:
<xul:browser> 元素,将您的 PDF 数据与pdf.js 一起加载到其中并按照我上面解释的方式打印。