是否可以从Firefox插件SDK打印?我已经浏览了插件SDK的在线文档,但似乎找不到关于这个的任何内容。
我想做的是从网页(存储在Javascript变量中的PDF文件)中检索一些数据,然后打开系统打印机对话框。
这能做到吗?
插件SDK没有任何内置的打印功能。当然,你可以使用chrome权限做很多事情,例如,给定一个浏览器窗口,你可以获得当前打开的窗口的nsIWebBrowserPrint
接口并打印它:
var browserPrint = browserWnd.gBrowser
.contentWindow
.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIWebBrowserPrint);
browserPrint.print(null, listener);
但问题仍然是你需要在浏览器中打开一个网页才能打印它。然而,浏览器不能打开PDF文件,这是由插件完成的-只有插件(浏览器无法访问)可以打印它。你可以看看pdf.js的方向,但它仍处于早期开发阶段。
page-worker
包看起来像是一种将页面加载到隐藏窗口以便可以打印的明显方法。唯一的问题-要获得nsIWebBrowserPrint
,您需要从插件访问页面的window
对象(不是内容脚本,它没有必要的特权)。