从Firefox插件SDK打印



是否可以从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对象(不是内容脚本,它没有必要的特权)。

相关内容

  • 没有找到相关文章

最新更新