17

現在のページをプリンターに印刷する方法が必要な内部 Google Chrome 拡張機能を開発しています。デフォルトの [印刷] ダイアログが表示されないようにします (したがって、javascript:window.print() は問題外です)。

私が理解している限りでは、これは JS + HTML プラグインだけでは不可能なので、NPAPI プラグインも (ダミーの MIME タイプで) 使用することにオープンです。そして、私はWindowsプラットフォームのみに関心があります。

標準的な解決策があればいいのですが、可能であれば、さまざまなハック/回避策にも対応しています。

これが不可能だと思われる場合は、ログに記録された機能リクエストを知っているかどうかお知らせください。

提案/説明は大歓迎です..

4

5 に答える 5

17

chrome (v18+) には--kiosk --kiosk-printingスイッチがあります。印刷確認なしでデフォルトのプリンターに自動的に印刷できます。

このビデオから見ることができますhttp://www.youtube.com/watch?v=D6UHjuvI7IE

于 2012-02-16T23:20:33.970 に答える
1

NPAPI を使用すると、オブジェクト タグ (拡張機能から使用できます) を介して対話できるネイティブ C++ プラグインを作成できるため、おそらくそれがその方法になります。

ちょっと難しいのは、ページを印刷するためのビットを取得する良い方法がわからないことです。これと似たようなことをした唯一の人物は、実際にブラウザーのウィンドウ ハンドル (NPAPI を介して入手可能) を取得し、そのビットをこすり落としてそのように印刷しましたが、印刷スタイルシートなどは考慮されていません。 . 自動化イベントを使用して印刷ダイアログを制御することもできますが、それが機能するかどうかはわかりません。

設計上、ブラウザーはこのようなことをさせないようにしています。Web サイトが確認なしでプリンターに印刷を開始できると、重大な脆弱性が生じる可能性があるためです...

とにかく、C++ でそれを行う方法を見つけた場合は、FireBreathを使用して NPAPI プラグインの作成を容易にすることができます。

于 2011-01-31T16:40:30.413 に答える
0

私は最近、同様の機能を探していましたが、Chrome の新しいネイティブ メッセージング API を使用すれば十分可能だと思われます。

https://developer.chrome.com/extensions/nativeMessaging

C# を使用した例はたくさんありますが、基本的な C# アプリケーションを使用した Chrome ネイティブ メッセージングのトラブルシューティングの簡単な例を 1 つ示します。

Chrome 拡張機能から C# で記述されたネイティブ ホストへのネイティブ メッセージング

これは1日遅れて1ドル不足する可能性があることを認識していますが、他の誰かがこの質問に出くわした場合に備えて、これが私にとってうまくいった解決策です. PrintDocumentC# アプリ内から、クラスを使用して、インストールされているプリンターに直接印刷できます。ページの画像を取得する方法がわかれば、firebreath や NPAPI を使用するよりもはるかに簡単になります。

于 2015-06-16T01:55:49.110 に答える
0

現在の Web ページのスナップショットを取得するさまざまな拡張機能があります (たとえば、これ)。NPAPIプラグインを介して画像をプリンターに送信するように適応させることができます。

于 2011-01-31T15:02:21.963 に答える