複数のプリンターをサポートするソフトウェアを書いています。それをテストするには、CUPSサーバーに複数のプリンターを追加する必要があります。どうやってやるの?
ジョブを/ dev / nullに直接送信する偽のプリンターをいくつか追加します。そうすれば、CUPSインターフェースの「完了したジョブ」リストを見て、ソフトウェアが各ジョブに正しいプリンターを使用しているかどうかを確認できます。
複数のプリンターをサポートするソフトウェアを書いています。それをテストするには、CUPSサーバーに複数のプリンターを追加する必要があります。どうやってやるの?
ジョブを/ dev / nullに直接送信する偽のプリンターをいくつか追加します。そうすれば、CUPSインターフェースの「完了したジョブ」リストを見て、ソフトウェアが各ジョブに正しいプリンターを使用しているかどうかを確認できます。
回答:
1つの解決策はcups-pdfをインストールすることです。PDFファイルを書き込む仮想プリンターを追加します。Webには、インストールと構成の方法に関するチュートリアルがいくつかあります。私はGentooを使用するので、私が読んだのGentoo-ウィキも言及し、Sabayonののwikiを。
cups-pdf仮想プリンターの構成ファイルは/etc/cups/cups-pdf.conf
にあり、デフォルトではすべてのPDFファイルがに書き込まれ/var/spool/cups-pdf/${USER}
ます。
(NB:Ubuntuでは〜/ PDF /に書き込みます)
ただし、いくつかの制限があります。
構成ファイルは1つしかないため、複数のPDFプリンターが同じディレクトリに保存されます。
「生の」データを印刷することは不可能です(たとえば、を使用してlpr -o raw
)。生のジョブとしてPDFファイルを送信しても機能しません。生の印刷ジョブは、空のページだけで空のPDFファイルを生成します。
これらの制限があっても、私のニーズには完全に機能します。
脚注:ユーザーがGnomeを使用している場合、またはGTK +アプリケーションを介して印刷している場合、印刷ダイアログには既に「Print to File」疑似プリンターがあります。したがって、なぜユーザーはまだ仮想PDFプリンターを追加する必要があるのでしょうか?いくつかの理由があります。
カップフォーラムには、この質問に対するより完全で正確な回答があります。
答えは、デバイスURIをfile:/ dev / nullに設定する必要があるということです
だから私のUbuntuのセットアップでは:
それは私にとって完璧に機能します。
再びCupsフォーラムを検索したところ、次のことがわかりました。
Cupsフォーラムのコマンドラインヌルプリンターのセットアップ
cupsd.confで:
FileDevice yes
プリンターのセットアップ
lpadmin -p nowhere -E -v file:/dev/null
プリンターのテスト
who |lp -d nowhere
あなたはにその出力プリンタを作成することができます/dev/null
とlpadmin
:
$ sudo lpadmin -p myprinter -E -v file:///dev/null
これはに書き込まれ/etc/cups/printers.conf
ますが、次のコマンドでプリンターを表示することもできますlpstat
。
$ sudo lpstat -s
myprinter accepting requests since Thu 22 Jan 2015 11:04:46 AM GMT
system default destination: myprinter
device for myprinter: ///dev/null
古いLinuxディストリビューションの/etc/cups/cupsd.confでFileDeviceを有効にする必要がある場合があることに注意してください。
新しいプリンターをデフォルトにするには、次を使用しますlpoptions
。
$ sudo lpoptions -d myprinter
lpadmin -x myprinter
またはWebインターフェイス。
最善の解決策の1つはを使用することippserver
です。それCUPSv2.2.2
以上が付属しています。別の方法として、プロジェクトをIPPサンプル実装から入手することもできます。
マニュアルページの説明によると:
ippserverは、IPP EverywhereおよびIPP Shared Infrastructure Extensions(INFRA)仕様に準拠したシンプルなインターネット印刷プロトコル(IPP)サーバーです。標準のIPPクライアントとINFRA仕様に準拠したIPPプロキシ間のスタンドアロンプリントサーバーまたは非常に基本的なインフラストラクチャサーバーとして使用できます。
これを使用するには、実行する必要があるのはを実行するだけippserver "My cool printer"
で、その名前の仮想プリンターが作成さMy cool printer
れます。Webサーバーのように動作し、特定のポートでリッスンします。
複数のプリンターが必要な場合は、を使用してサーバーを複数のポートで実行できますippserver "My other cool printer" -p 8888
。
属性ファイルを使用してプリンター属性を指定することもできます。たとえば、お使いのプリンターはデフォルトで高品質の印刷をサポートしているため、属性ファイルに次の属性を追加できます。
ATTR enum print-quality-default high
次を使用してサーバーを実行します。
ippserver "My high quality cool printer" -a attributes-file.txt
参照:
http://inai.de/linux/adm_virtualprinterから取得:
CUPSの仮想プリンター
データをどこにも送信しない(たとえば)CUPSでプリンターを作成する
/dev/null
には、多くの方法があります。このページではsocket://
メソッドを使用します。最初にxinetdをセットアップします
必要なのはポート9のTCP破棄サービスです。Xinetdにはそれが組み込まれているため、そのまま使用できます。次の定義がxinetdの設定ファイル(通常)で利用可能であることを確認してください
/etc/xinetd.d/discard
。次のようなサービスが含まれている必要があります。サービス破棄 タイプ=内部 id = discard-stream socket_type =ストリーム プロトコル= tcp ユーザー=ルート 待機=いいえ 無効=いいえ フラグ= IPv6 IPv4実行rcxinetd reload
して構成ファイルを再読み取りし、新しいdiscard
サービスをアクティブにします。またはrcxinetd start
、xinetdがまだアクティブになっていない場合に使用します。CUPSプリンター
次に、CUPS Webフロントエンドに移動して、新しいプリンターを追加します。宛先
socket://localhost:9/
として、プリンタとして、「HP 2500C Foomatic / pcl3」などの機能的に見えるものを選択します。これですべてです。