この回答 は、Google Chromeでサイレント印刷を有効にする方法を示しています。しかし、私は2つのWebページを持っています。これらのWebページは、ユーザーの操作なしに2つの異なるプリンターを使用して静かに印刷する必要があります。 window.print()
を呼び出す前にプリンターを自動的に選択する方法はありますか?本当に必要な場合は、Chrome拡張機能を書いてもかまいません。
おそらく、Google Clound Printを使用してプリンターをセットアップし、次に クラウドプリンティングAPI を使用して、それらにジョブをサイレントで送信できます。ジョブを送信するときにプリンターIDを指定できるようです。 Webページをラスタライズするには、 html2canvas のようなものを使用する必要があるかもしれません。
あなたが知っている環境にいて、十分な特権を持っている場合(おそらく、使用したいプリンターを知っているので)、コマンドラインから変更を試みることができます。このためには、
@RunDLL32.EXE printui.dll,PrintUIEntry /y /n "Printer name"
プリンタ名は、コントロールパネルに表示される値である必要があります。
JavaScriptからコマンドラインを呼び出す場合、適切なActiveXコントロールを有効にすると、次のコマンドを使用できます。
var run=new ActiveXObject('WSCRIPT.Shell').Run("commands to run");
また、Shell.application ShellExecuteで試すこともできます
var objShell = new ActiveXObject("Shell.application");
objShell.ShellExecute("cmd.exe", 'RunDLL32.EXE printui.dll,PrintUIEntry /y /n "Printer name"', "C:\\WINDOWS\\system32", "open", 1);
詳細については、 http://msdn.Microsoft.com/en-us/library/windows/desktop/gg537745(v = vs.85).aspx にアクセスしてください。
私はそれをテストしていないので、頑張ってください!
F#でサーバーを作成し、WebSocketを介してサーバーと通信することになりました。
回答を検索しましたが、プログラムでプリンターを設定する方法がないようです。したがって、おそらく複雑な解決策:
オペレーティングシステムのデフォルトプリンターを切り替えることができるコマンドラインアプリケーションを作成します。たぶん、プリンタを無効にしたり有効にしたりできるアプリケーションでしょう。 Windowsを使用している場合、.NETアプリケーションはおそらくこれを実行できます。 Linuxの場合、プリンター管理用のコマンドラインインターフェイスが必要です(確かにわかりません)。
ここで、例えば、プリンターの有効化/無効化プログラムを呼び出すことができるPHP、asp.net、またはRubyなどのページを作成します。
これが機能している場合は、JavaScript呼び出しを使用して、最初にプリンター1に印刷し、その後、プリンター2に切り替えます。ただし、いくつかの欠点があります。
誰かがより良い解決策を考え出すことを願っていますが、少なくとも私の考えを共有したかったのです。多分彼らはあなたの問題を解決するのにあなたを助けます。