件名で述べたように、ユーザーがダイアログボックスを表示せずに直接印刷を送信できるようにする Web ベースのアプリケーションの機能を作成する必要があります。私のためではない :(。
何が最善の選択肢であり、どのようにそれを書き留めるべきかを提案してください (技術)。
提案してください!
ありがとう。
編集:印刷は、ユーザーの既定のプリンターで送信する必要があります。
件名で述べたように、ユーザーがダイアログボックスを表示せずに直接印刷を送信できるようにする Web ベースのアプリケーションの機能を作成する必要があります。私のためではない :(。
何が最善の選択肢であり、どのようにそれを書き留めるべきかを提案してください (技術)。
提案してください!
ありがとう。
編集:印刷は、ユーザーの既定のプリンターで送信する必要があります。
他のブラウザの解決策が見つかりませんでした。この質問を投稿したとき、IE の優先度が高く、喜んで 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のBypass Printdialogで@purefusionが述べているように、window.print ()ではなくPrint()を使用してください。
this.print(false);
Chrome、Firefox、IEでこれを試しました。Firefox と IE でのみ機能し、デフォルトのプリンター (デフォルトの印刷設定) を使用し、PDF をレンダリングする場合にのみ機能します (私は Safe Reading Mode を無効にして Foxit Reader を使用しています)。HTMLページをレンダリングすると、Chromeは印刷ダイアログを表示し、他のブラウザも表示します。
これはうまくいくはずです。私は自分で試してみましたが、うまくいきました。false の代わりに True を渡すと、印刷ダイアログが表示されます。
this.print(false);