web-dev-qa-db-ja.com

2台のプリンタ1台のキュー

私の問題:注文が処理されるとき、同じドキュメントを2台のプリンターで印刷する必要があります。

私が提案した解決策:2つの実際のプリンターキューにジョブを吐き出すバックエンドスクリプトを使用して、CUPSに単一のキューを作成します。

私の問題:ドキュメント。ブルズアイの周りのすべてのリングを見ているかもしれませんが、CUPSバックエンドスクリプトを作成するためのルールを説明するものは何も見つかりません。

最後に、いくつか質問があります。

  • 私が見逃したCUPSでこれを行うオプションはすでにありますか?
  • キューを追加するために使用する行は "lpadmin -p MultiPass -E -v multipass -P Generic PostScript Printer"です。しかし、 "-v multipass:/tmp"のようなディレクトリを指定しない限り、DeviceURIは正しくありません。どうしてこれなの?
  • テストのために、私のスクリプトはARGVをキャプチャし、引数ごとに1行ずつテキストファイルに書き出すだけです。問題は、何も得られないことです。ログにはジョブが成功したことが示されていますが、バックエンドでのわずかな試みが実行されていないことは間違いありません。

私はこの質問を簡潔にしようとしました、それで私がこれらすべての中で最も重要な部分を省略したと確信しているので、より多くの情報を求めてください。正直なところ、私は自分のしっぽを追いかけ終わったところです。お時間をいただきありがとうございます。

4
Shazburg

これが 別のアプローチ です。シェルスクリプトを使用して、プリンタごとに1回ドキュメントを印刷し、そのスクリプトをインターフェイスとして設定します。

#!/bin/bash 
# if you don't have bash, use /bin/sh 
# don't leave off the first line - absolutely needed for cups! 
/usr/bin/lp -dprinter1  $6 
/usr/bin/lp -dprinter2  $6 
/usr/bin/lp -dprinter3  $6

chmod 755 ~/myinterfacefile 
lpadmin -p threeprint -E  -i ~/myinterfacefile -v /dev/null 

「threeprint」(lp -d threeprint somefile)にジョブを送信すると、3台のプリンターすべてで印刷されるようになります。

Tea4Cups というバックエンドが見つかりました ここ 。 SVNツリーをざっと見て、以前のバージョンまたは新しいバージョンを見つけることができます。

可能性は無限大 :

  • 同じジョブを複数のプリンターに同時に送信します。これはCUPSでは不可能です。
  • PDFすべての印刷ジョブのアーカイブを自動化します。
  • 重複する印刷ジョブを禁止する(簡単な例をサンプル構成ファイルに示します)
  • 15分で印刷会計ソリューションを作成します(はい、これIS FOR REAL)
  • 等...

このページ このスクリプトを購入することと無料でダウンロードすることの違いを説明しています。