複数のプリンターをサポートするソフトウェアを書いています。テストするには、CUPSサーバーに複数のプリンターを追加する必要があります。どうやってやるの?
ジョブを/ dev/nullに直接送信する偽のプリンターをいくつか追加したいと思います。そうすれば、CUPSインターフェースで「完了したジョブ」のリストを見て、ソフトウェアが各ジョブに適切なプリンターを使用しているかどうかを確認できます。
1つの解決策は、cups-pdfをインストールすることです。これは、PDFファイルを書き込む仮想プリンターを追加します。それをインストールして構成する方法については、Web上にいくつかのチュートリアルがあります。私はGentooを使用しているので、読みました Gentoo-wikiSabayon wiki にも言及しています。
cups-pdf仮想プリンターの構成ファイルは/etc/cups/cups-pdf.conf
にあり、デフォルトですべてのPDFファイルは/var/spool/cups-pdf/${USER}
に書き込まれました。
(注:Ubuntuでは〜/ PDF /に書き込みます)
ただし、いくつかの制限があります。
設定ファイルは1つしかないため、複数のPDFプリンターは同じディレクトリに保存されます。
(たとえば、lpr -o raw
を使用して)「生の」データを印刷することはできません。 PDFファイルをrawジョブとして送信しても機能しません。raw印刷ジョブは空白のPDFファイルだけを空のページで生成します。
これらの制限があっても、私のニーズには完全に対応しています。
脚注:ユーザーがGnomeを使用している場合、またはGTK +アプリケーションを介して印刷している場合、印刷ダイアログにはすでに「ファイルに印刷」という疑似プリンターがあります。したがって、なぜユーザーはまだ仮想PDF=プリンターを追加する必要があるのでしょうか?いくつかの理由があります。
lpadmin
を使用して/dev/null
に出力するプリンターを作成できます。
$ 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
最良の解決策の1つは、ippserver
を使用することです。 CUPSv2.2.2
以上が付属しています。あるいは、ここからプロジェクトを取得することもできます: IPPサンプル実装 。
マニュアルページ の説明によると:
ippserverは、IPP EverywhereおよびIPP Shared Infrastructure Extensions(INFRA)仕様に準拠したシンプルなインターネット印刷プロトコル(IPP)サーバーです。スタンドアロンプリントサーバーとして、またはINFRA仕様に準拠したIPPクライアントと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をセットアップする
必要なのはTCPポート9の破棄サービスです。Xinetdにはそれが組み込まれているため、そのまま使用できます。次の定義がxinetdの構成ファイルで使用可能であることを確認してください。 、通常は
/etc/xinetd.d/discard
。次のようなサービスが含まれている必要があります。service discard type = INTERNAL id = discard-stream socket_type = stream protocol = tcp user = root 待機=いいえ 無効=いいえ フラグ= IPv6 IPv4rcxinetd reload
を実行して構成ファイルを再度読み取り、新しいdiscard
サービスをアクティブにします。または、xinetdがまだアクティブでない場合はrcxinetd start
を使用します。CUPSプリンター
次に、CUPS Webフロントエンドに移動して、新しいプリンターを追加します。宛先として
socket://localhost:9/
を使用します。プリンターは、「HP 2500C Foomatic/pcl3」など、機能的に見えるものを選択します。これですべてです。