Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

lprコマンドでバイナリ・モードで印刷する

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2006/10/28
 
対象OS
Windows 2000
Windows XP
Windows Server 2003
LPRプロトコルで送信する場合、テキスト・モードとバイナリ・モードが利用できる。
lprコマンドで印刷データを送信する場合、デフォルトではテキスト・モードになっている。
バイナリ・モードで送信するには「-o l」オプションを指定する。
 
解説

 TIPS「LPR(LPD)プロトコルでプリンタを公開する」「LPRプロトコルでプリンタへ接続する」では、LPRプロトコルを使ってプリンタを公開したり、LPRプロトコルを使ってデータを送信する方法について説明した。

 印刷を行う場合、通常はアプリケーションから印刷メニューを選び、印刷する。だが場合によっては、プリンタに送るべき印刷データそのものを使って印刷したいことがある。例えばWindows以外のOS環境で作成されたPostScriptの印刷データ(PostScriptのコードが含まれているファイル)を持っている、もしくは送付してもらった場合は、そのデータを直接PostScriptプリンタにLPRプロトコルで送信すれば、それを作成したアプリケーションやプリンタ・ドライバ、OS環境などがなくても、データを印刷することができる(例えば、Macintosh上の特殊なグラフィックス・アプリケーションで作成された印刷データはあるが、手元のWindowsコンピュータではそれを開くことができないといった状態。UNIXやMacintosh、メインフレームなど、さまざまな機種が混在している環境で起こりうる)。

 このような状況ではプリンタに対して、印刷データ・ファイルをそのままlprコマンドなどで送信すれば印刷できるが、1つだけ注意点がある。データの送信は「バイナリ・モード」で送信しなければならないということだ。

 LPRプロトコルでは、データの種類としてテキスト・モードとバイナリ・モードという2つの種類が選択できる。テキスト・モードとは、プリンタに対して純粋なテキスト・データのみを送信するというモードである。テキスト以外の制御文字やバイナリ・データなどの不適切なデータが含まれていると、それらは空白や改行、制御文字などに変換されたり、削除されてしまうことがある。またPostScriptのデータが、PostScriptのコードのまま印字されてしまったりする(例えば先頭の方に「%!PS-Adobe-3.0……」のような文字列が見える状態で印刷される)。現在のプリンタでは、送信するデータにはさまざまな制御コードやバイナリ・データなどが含まれており、これをテキスト・モードで印刷しようとしても、正しく印刷できないばかりか、意味不明な文字が印刷された紙が大量に出力されるなどのトラブルが発生する。

 このように、本来プリンタに送信するべきデータをLPRプロトコルで直接プリンタに送信して印刷するには、バイナリ・モードを利用する。本TIPSでは、lprコマンドでバイナリ・モードで印刷する方法について紹介する。

操作方法

 lprコマンドは、LPR(LPD)プロトコルをサポートしたサーバに対して、印刷データを送信するためのプログラムである。その使い方はTIPS「LPR(LPD)プロトコルでプリンタを公開する」で紹介したlpqコマンドと類似しており、次のようになっている(「-S」と「-P」は大文字であることに注意)。

lpr -S サーバ名 -P プリンタ名 印刷ファイル名

 印刷ファイル名には、送信したいデータが含まれているファイル名を指定する。例えば、sample.txtというテキスト・ファイルをテキスト・モードで印刷したければ、次のようにする(lprはデフォルトではテキスト・モードで送信する)。

C:\>lpr -S server1 -P printer1 sample.txt

 ただし、sample.txtに半角英数字以外の文字が含まれていると、印刷できないことがある。プリンタがその文字コードを理解できない場合があるからだ(このあたりはプリンタに依存する)。

 バイナリ・モードで印刷させるためには、「-o l」というオプション(「l」は小文字の“エル”)を追加して指定する。例えば、sample.psというPostScriptのファイルをPostScriptプリンタに送信するには、次のようにする。なおオプション指定は「-o l」ではなく、「-ol」でも動作するようである(lprのヘルプには前者のみが記述されている)。

C:\>lpr -S server1 -P psprinter2 -o l sample.ps

 PostScriptファイルに限らず、通常のレーザー・プリンタやインクジェット・プリンタでも同様である。文字以外のグラフィックス描画命令が含まれたバイナリ・データをプリンタに送信する場合は、必ずこのオプションを忘れないようにする。

 プリンタにデータが送信され、印刷されているかどうかは、次のようなlpqコマンドで確認できる。End of Article

lpq -S サーバ名 -P プリンタ名

関連記事(Windows Server Insider)
Windows TIPS:LPR(LPD)プロトコルでプリンタを公開する
Windows TIPS:LPRプロトコルでプリンタへ接続する
Windows TIPS:LPRプロトコルと標準TCP/IPポート・モニタの違い
 
「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間