Add-on SDK не имеет встроенных функций для печати. Конечно, вы можете многое сделать, используя Chrome Authority , например, Для данного окна браузера вы можете получить интерфейс nsIWebBrowserPrint
для открытого в данный момент окна и распечатать его:
var browserPrint = browserWnd.gBrowser
.contentWindow
.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIWebBrowserPrint);
browserPrint.print(null, listener);
Но проблема все еще в том, что вам нужно открыть веб-страницу в браузере, чтобы распечатать ее. Браузер не открывает PDF-файлы, однако, это делает плагин - и только плагин (к которому у браузера нет доступа) может распечатать его. Вы можете посмотреть в направлении pdf.js , но он все еще находится на ранней стадии разработки.
page-worker
пакет выглядит как очевидный способ загрузки страницы в скрытое окно, чтобы ее можно было распечатать. Единственная проблема - чтобы добраться до nsIWebBrowserPrint
, вам понадобится получить доступ к объекту window
страницы из надстройки ( не скрипт содержимого, он не имеет необходимых привилегий).