CUPSドライバのないプリントサーバーは、既存のPPDプリンタドライバを持つプリンタのプロキシとして機能します。

CUPSドライバのないプリントサーバーは、既存のPPDプリンタドライバを持つプリンタのプロキシとして機能します。

私のネットワークでドライバなしの印刷を使用したいです。どこでもIPPLinuxの使用コンピュータ支援システム印刷システム

IPP ドライバーのない印刷をサポートするネットワーク プリンターがありますが、多くの問題があります。 1つは特定のPDFファイルを印刷せず、もう1つは2つ以上のコピーを印刷しないなどです。しかし、それらはすべて基本的なPPDプリンタドライバを使用して非常にうまく印刷されます。だから私は、独自のプリンタドライバを介してネットワークプリンタにサービスを提供しますが、ネットワークでは、各ネットワークプリンタに完全な機能を備えた(仮想?)IPPデバイスとして表示されるプリントサーバーをネットワークに提供したいと思います。

これは通常、プリントサーバーがネットワーククライアントのドライバなしのIPP印刷コマンドをプリンタレガシー印刷コマンドに「変換する」ため、ネットワークにはIPPEverywhere印刷キューしかありません。デフォルトでは、CUPSはドライバレスプリンタを提供するためにローカル印刷キューを作成します。どこでもIPPまたは、PPDファイルと一緒にプリンタの古いドライバを使用します。

┏━━━━━━━━━━━━━┓
┃ localhost   ┃
┃   ┌───────┐ ┃                ┏━━━━━━━━━┓
┃   │ Queue │═╋════════════════┫ Printer ┃
┃   └───────┘ ┃                ┗━━━━━━━━━┛
┗━━━━━━━━━━━━━┛

今のアイデアは、ネットワーク上のドライバレスプリンタのように動作するプリントサーバーを持つことです。

┏━━━━━━━━━━━━━┓                ┏━━━━━━━━━━━━━┓
┃ localhost   ┃                ┃ printserver ┃
┃   ┌───────┐ ┃ IPPEverywhere  ┃   ┌───────┐ ┃  legacy PPD driver  ┏━━━━━━━━━┓
┃   │ Queue │═╋════════════════┫   │ Queue │═╋═════════════════════┫ Printer ┃
┃   └───────┘ ┃                ┃   └───────┘ ┃                     ┗━━━━━━━━━┛
┗━━━━━━━━━━━━━┛                ┗━━━━━━━━━━━━━┛

古いドライバを使用してプリンタをプリントサーバーに接続するのに問題はありません。これは以前の方法です(ただし、アップストリームCUPSリリースでは廃止予定です)。

ところで、Androidスマートフォンに接続し、IPPEverywhereを使用して印刷できるように、ネットワーク上でプリントサーバーをどのように見つけますか?

答え1

時々私が使用する解決策のいくつかはネットワーク上のLinuxデバイスでのみ機能しますが、モバイルデバイス用の汎用印刷ソリューションでは機能しません。しかし、記録のために共有します。おそらく、コミュニティに最終的な解決策を得るためのいくつかのガイドラインまたは答えがあるかもしれません。

プリンタが正常に接続され、プリントサーバーから印刷できるとします。

printserver ~$ lp -E -d myprinter /usr/share/cups/data/testprint

私は使うプリンタの共有プリントサーバーのキューに直接アクセスできます。これを行うには、localhostローカル印刷キューの代わりにプライマリサーバーとして設定する必要がありました。

┏━━━━━━━━━━━━━┓                ┏━━━━━━━━━━━━━┓
┃ localhost   ┃                ┃ printserver ┃
┃             ┃ IPPEverywhere  ┃   ┌───────┐ ┃  legacy PPD driver  ┏━━━━━━━━━━━┓
┃             ┃════════════════╋═══│ Queue │═╋═════════════════════┫ myprinter ┃
┃             ┃                ┃   └───────┘ ┃                     ┗━━━━━━━━━━━┛
┗━━━━━━━━━━━━━┛                ┗━━━━━━━━━━━━━┛

CUPSがインストールされているプリントサーバーでDebian Busterを使用するには、共有を有効にする必要があります。

printserver ~$ sudo cupsctl -E --share-printers
printserver ~$ sudo cupsctl -E   # check settings

また、CUPSがインストールされているデバイスのDebianの場合は、デフォルトのプリントサーバーを以下から設定してください/etc/cups/client.conf

client ~$ sudo bash -c 'echo "ServerName printserver" >> /etc/cups/client.conf'

プリンタにアクセスするために必要なことはこれがすべてです。ステータスとオプションを確認してください。

client ~$ lpstat -E -t
client ~$ lpoptions -E
client ~$ lpoptions -E -l

最後のコマンドを使用すると、私のカラープリンタのように普遍的でlpはないプリンタの特別なオプションを見つけることができます。BRMonoColorこの例では、基本色の代わりに灰色で両面用紙を2枚印刷します。

client ~$ lp -E -d myprinter -n 2 -o fit-to-page -o collate=true -o sides=two-sided-long-edge -o BRMonoColor=Mono ./two-pages.pdf

たとえば、USB プリンタがクライアントにローカルに接続されている場合、問題が発生する可能性があります。でそのキューを見ることはできませんlocalhost。この場合、環境変数を使用していつでもプリントサーバーを指定できますCUPS_SERVER

client ~$ CUPS_SERVER=localhost lpstat -E -t
client ~$ CUPS_SERVER=localhost lp -E ...

引用:

関連情報