Windows lpr 実装でプリンタが見つからない

Windows lpr 実装でプリンタが見つからない

私は、Websocket から lpr コマンドを受信し、そのコマンドをローカルのビニール カッターに送信する Linux プログラムを Windows 7 に移植しようとしています。Windows の lpr 実装は異なり、参考にできるアドバイスはあまりありません。

Windows で LPR サービスを有効にし、ビニール カッターを LPR プリンターとしてインストールしました。Illustrator などから問題なく印刷できます。ただし、プリンターを lpq または lpr しようとすると、

C:\Users\M> lpq -S 127.0.0.1 -P vinyl
Windows LPD ServerError: specified printer does not exist

C:\Users\M> lpq -S <full computer hostname> -P vinyl
Windows LPD ServerError: specified printer does not exist

C:\Users\M> lpq -S google.com -P vinyl
*times out*

このエラーは、Google で検索しても解決方法がなかなか見つかりません。プリンターがローカルなので、権限の問題でしょうか? Windows についてはあまり詳しくありません。Cygwin で実行しようとしましたが、Cygwin は Windows の lpr バージョンも使用しようとしているようです。

答え1

Windows の LPD サーバーはループバック アドレスを好まないため、代わりにネットワーク アダプターの実際の IP アドレスを使用してみてください。

答え2

この種のデバイスのほとんどには Windows ドライバーがあり、Linux で動作させるにはこうした面倒な作業が必要です。まずは、デバイスを Windows マシンに接続して Windows ドライバーとソフトウェアを使用してみます。通常、Linux マシンで Windows デバイスを共有する方が、その逆よりも簡単です。回避策としては、両方のマシンでローカル プリンターとして設定し、ケーブルをマシン間で移動させるという方法もあります。

デバイスをルーターに直接接続されたネットワーク デバイスとして設定できますか (設定が簡単になります)?

デバイスを Linux コンピューターに接続する必要がある理由がある場合は、権限の問題が発生している可能性があります。デバイスがパブリック共有 (すべてのユーザー) に設定されていることを確認します。

もう一つの考え: ネットワーク プリンタのアドレスを指定する方法はいくつかあります。他の指定方法 (ipp、http、AppSocket など) を試してください。別の Linux コンピュータがある場合は、プリンタを見つけて URI をコピーするのが簡単な方法です。

関連情報