2011-12-16 58 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