印刷ダイアログをバイパスする印刷オプションを持つことは可能ですか?
クローズドシステムで作業しており、印刷ダイアログの設定を事前に定義できるようにしたいと考えています。ボタンをクリックするとすぐに印刷を処理します。
私が読んでいることから、これを行う方法はブラウザごとに異なります。たとえば、IEはActiveXを使用します。Chrome/Firefoxには拡張機能が必要です。これに基づいて、C++でアプリケーションを作成する必要があるようです。ブラウザから渡されたパラメータを処理して、適切なフォーマットで自動印刷できます(ラベル用)。次に、それをChrome/Firefoxの拡張機能として書き直す必要があります。最終結果は、クローズドシステムは、使用するブラウザに応じて、これらの機能をダウンロード/インストールする必要があります。
これを回避する別の方法があることを願っていますが、このタスクはブラウザのセキュリティ問題に違反している可能性があります。
結局、Nexus Mod Managerと非常によく似たカスタムアプリケーションを実装しました。カスタム アプリケーションURIスキーム を登録するC#アプリケーションを作成しました。仕組みは次のとおりです。
このアプローチでは、ユーザーからの最初のダウンロードと、アプリケーションを初めて起動するときにウィンドウからの単一のセキュリティプロンプトが必要でした。また、印刷ジョブが処理されたかどうかを検出するようにJavascriptマジックを実装しました。そうでない場合は、アプリケーションをダウンロードするように求めます。
これが遅い返信であることは知っていますが、これが私が使用している解決策です。私はこれをIEでのみ使用し、他のブラウザではテストしていません。
このSub Printブローは、デフォルトの印刷機能を効果的に置き換えます。
<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>
次に、Javascriptのwindow.print();を使用します。ハイパーリンクまたはボタンに関連付けて、印刷コマンドを実行します。
ページが読み込まれたときに自動的に印刷する場合は、下のコードをタグの近くに配置します。
<script type="text/javascript">
window.onload=function(){self.print();}
</script>
この問題を解決するFirefoxの素晴らしいプラグインを見つけました。 try シームレス印刷 印刷ダイアログを表示せずにWebアプリケーションから何かを印刷するFirefoxのプラグイン。
一般的な答えは次のとおりです。NO一般的なケースではこれを行うことはできませんが、場合によってはそれを行うことができます。チェック http://justtalkaboutweb.com/2008/05/09/javascript-print-bypass-printer-dialog-in-ie-and-firefox/
とにかくそのようなことを許可した場合、マルウェアのスクリプトが静かに印刷ジョブを訪問者のプリンターに送信する可能性があるため、セキュリティの問題になります。
私はFirefoxブラウザのためにこの答えを書いています。
ファイルを開く>ページ設定
すべてのヘッダーとフッターを空白にします
マージンを0(ゼロ)に設定します
Firefoxのアドレスバーにabout:configと入力します
print.always_print_silent
を検索し、ダブルクリックします
Falseからtrueに変更します
print.always_print_silent
が表示されない場合
設定ウィンドウの空白の領域を右クリックします
新規>ブール値を選択
名前として「print.always_print_silent」と入力します(引用符は不要)
[OK]をクリックします
値にtrueを選択します
print.print_printer
にリストされているものを確認することもできます