2011-12-16 55 views
1

是否可以从Firefox附加SDK打印?我浏览了附加SDK在线文档,但似乎无法找到任何关于此的信息。从Firefox插件SDK打印?

我想要做的是从网页(存储在Javascript变量中的PDF文件)中检索一些数据,然后用该文件打开系统打印机对话框。

可以这样做吗?

回答

1

附加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对象(而不是内容脚本,它没有必要的权限)。

+0

嗯,实际上我**使用pdf.js加载脚本标记 - 所以我有PDF文件(通过AJAX)在页面中的Javascript二进制数组。但显然我不能将它发送给打印机。所以我在想的是构建一个小插件,它可以接收包含PDF文件的数组,并且在操作系统可以打印PDF文件的前提下使用OS打印API进行打印。这有意义吗? – Weston 2011-12-16 15:06:59