2011-10-25 8 views
8

可能性の重複:私たちのイントラネットアプリケーションの
Printing to a specific printer from a web appJavaScriptを使用するプリンタを選択できますか?

一つの非デフォルトのプリンタに印刷する必要があります。もちろん、人々は定期的に正しいプリンタを選択することを忘れています。

私は、JavaScriptを使ってこれを正常に行うことはできませんが、ブラウザがIE9であり、Webアプリケーションを信頼ゾーンに追加できることを認識しています。正しいプリンタを自動的に選択するJavaScriptを書いていますか?おそらくいくつかのActiveXや他のIE固有のものを使用しています。

+0

あなたがコントロールのようなものを持っており、それが内部なら、多分ActiveXコントロールが動作します。 –

答えて

6

いいえ、Javascriptオブジェクトモデルには、Webブラウザの標準的な印刷ダイアログをアクティブにする可能性のあるwindow.print()メソッドが含まれていますが、機能が拡張されている限りです。 Javascriptコードでは、コンピュータに接続されているプリンタを確認したり、プリンタのプロパティを調べたり、設定を任意に構成したりすることは適切ではないでしょう。

適切なプリンタを選択するようにユーザーに知らせる、印刷前にポップを追加することをお勧めします。私は過去にそれを使用している

http://www.meadroid.com/scriptx/index.asp

、それはプリンタの属性を制御することが可能:

+0

明らかにわかりませんでしたが、これは一般的に可能ではないことを認識していますが、セキュリティポリシーが緩和されているとIE固有の解決策があることを期待しています(*イントラネット*すべて) – Kris

+1

あなたは十分にはっきりしていた、答えはまだ同じです、方法はありません。 – isJustMe

+1

実際、コンタミのソリューションは、たとえそれが私の目的にとって高価すぎるとしても機能します。 – Kris

3

お使いのブラウザはIE基づいている場合、あなたはmeadroidからこのActiveXのを使用することができます。ここで

はmmeadroidドキュメントからの例です:

<script> 
function printWindow() { 
    factory.printing.SetMarginMeasure(2); // set inches 
    factory.printing.header = "This is MeadCo"; 
    factory.printing.footer = "Printing by ScriptX"; 
    factory.printing.portrait = false; 
    factory.printing.leftMargin = 1.0; 
    factory.printing.topMargin = 1.0; 
    factory.printing.rightMargin = 1.0; 
    factory.printing.bottomMargin = 1.0; 
    factory.printing.copies = 1; 
    factory.printing.printBackground = true; 
    factory.printing.Print(false); 
    factory.printing.WaitForSpoolingComplete(); 
    // navigate or close browser here // 
} 
</script> 
+0

これはうまくいくようですが、有料版のみで動作します。 – Kris

+0

はい:-) ...それは無料ではありませんが、ビジネスプロジェクトのためには良い投資です –

+2

ここにfirefoxに切り替えると、meadco scriptxと似たfirefoxのアドオンが無料です:https://addons.mozilla.org/it/firefox/addon/js-print-setup/ –

関連する問題