主題で述べたように、ダイアログボックスを表示せずにユーザーが直接印刷を送信できるようにするWebベースのアプリケーションの機能を作成する必要があります。私のためではない :(。
最良の選択肢は何か、それをどのように書くべきか(技術)を提案してください。
提案してください!
ありがとう。
編集:印刷はユーザーのデフォルトプリンターで送信する必要があります。
他のブラウザの解決策が見つかりませんでした。この質問を投稿したとき、IEが優先度が高く、喜んで見つけました。他のブラウザー(firefox、safari、opera)のソリューションがある場合は、ここで共有してください。ありがとう。 。
VBSCRIPTは、VB6またはC#/ VB.NETでActiveXを作成するよりもはるかに便利です。
<script language='VBScript'>
Sub Print()
OLECMDID_PRINT = 6
OLECMDEXECOPT_DONTPROMPTUSER = 2
OLECMDEXECOPT_PROMPTUSER = 1
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
End Sub
document.write "<object ID='WB' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"
</script>
今、呼び出します:
<a href="javascript:window.print();">Print</a>
ポップアップ印刷ウィンドウなしで印刷を送信します。
IE9はIE7やIE8のようにwindow.print()を呼び出してPrint()VBScriptをトリガーすることをサポートしなくなったため、window.print()は常にIE9の印刷ダイアログをトリガーします。
修正は非常に簡単です。 onclickイベントでwindow.print()の代わりに、Print()自体を呼び出すだけです。
別の質問への回答で修正をより詳細に説明しました。実際に動作するコード例では、HTML構文が少し更新されています(動作中のコードとしてテストされている間は可能な限り)。
サンプルコードは次の場所にあります。
AttendStarは、印刷ダイアログボックスを非表示にし、Firefoxのほとんどのバージョンのすべてのヘッダーとフッターを削除する無料のアドオンを作成しました。
https://addons.mozilla.org/en-US/firefox/addon/attendprint/
この機能を使用すると、$( 'img')。jqprint();を使用できます。 jqueryのjqprintは、Webアプリケーションから自動的に呼び出される画像のみを印刷します。
これが可能だとは思わない。表示されるダイアログボックスでは、ユーザーは印刷するプリンターを選択できます。したがって、アプリケーションでクリックして印刷するだけで、ユーザーが印刷ボタンをクリックするだけで、コンピューターに2台のプリンターが接続されているとします。または、おそらく、そのユーザーは25台のプリンターを備えたオフィスビルで働いています。そのダイアログボックスがないと、コンピューターはどのプリンターで印刷するかをどのように知るのでしょうか?
IEブラウザの場合、「VBScriptソリューション」が機能します。
しかし、 IE9のPrintdialogをバイパス で@purefusionが言及しているように、window.print()ではなくPrint()を使用します。
this.print(false);
これをChrome、Firefox、IEで試しました。 FirefoxとIEでのみ動作し、デフォルトのプリンター(デフォルトの印刷設定)を使用し、PDF(セーフリーディングモードを無効にしてFoxit Readerを使用)をレンダリングする場合にのみ動作します。 Chromeは、HTMLページをレンダリングするときの印刷ダイアログと他のブラウザーも表示します。