2011-12-16 14 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); 

をしかし、問題はまだあなたがそれを印刷するためには、ブラウザでWebページを開く必要があるということです。ブラウザはPDFファイルを開くことはありませんが、これはプラグインによって行われ、プラグインのみ(ブラウザはアクセス権がありません)で印刷できます。 pdf.jsの方向を見ることができますが、それはまだ初期の開発段階です。

page-worker packageは、それが印刷できるように隠されたウィンドウにページをロードするために明白な方法のように見えます。唯一の問題 - nsIWebBrowserPrintに到達するために、あなたはアドオン(ないコンテンツスクリプト、それは必要な権限を持っていない)から、ページのwindowオブジェクトにアクセスする必要があります。

+0

スクリプトタグを搭載したpdf.jsを使用してまあ、実際にI **午前** - ので、私は、ページ内のJavascriptバイナリ配列で(AJAX経由)PDFファイルを持っています。しかし明らかに私はそれをプリンタに送ることはできません。だから、私が考えていたのは、PDFファイルを保持しているアレイを受け取って、OSがPDFファイルを印刷できるという前提で、OSの印刷APIを使って印刷する小さなアドオンを構築することでした。これは理にかなっていますか? – Weston

+0

OSはPDFファイルを印刷できません - PDFリーダーは(Acrobat Reader、Foxit Readerなど)できます。むしろそれに話をする方法を把握しようとするよりも、それは私が上でそれを説明する方法を、いくぶん隠し ''要素を作成し 'pdf.js'と一緒にそれにあなたのPDFデータをロードし、印刷するより理にかなって。 –

+0

ええ、あなたはprolly右ウラジミールです。しかし、このすべての目的は、Adobe Readerプラグインを避けることでした。 Firefox/Linuxではひどく、Mac OS/Xでは存在しません。Chromeの内部PDFレンダラでも同様の話です。それは最高でLinuxを吸う。 – Weston

関連する問題