|
次のページ
前のページ
目次へ
2. Linux 上での印刷このセクションでは、ファイルを印刷する方法、プリントキューを確認する方法、 プリントキューからジョブを削除する方法、印刷前にファイルをフォーマットする 方法、および印刷環境を整える方法について解説します。
2.1 Linux の印刷システムの歴史Linux の印刷システム、すなわち lp システムは、もともと California 大学の人々が BSD (Berkeley Software Distribution) UNIX オペレーティング システムのために作成したソースコードを Linux に移植したものです。
2.2 lpr を使ってファイルを印刷する
まず Linux オペレーティングシステム上で印刷をする最も簡単な方法は、
印刷したいファイルを印刷デバイスに直接送る方法です。ひとつには、cat
コマンドを使って行うやり方があります。
上記で
セキュリティ上の理由から、
それゆえ、一般ユーザは lpr コマンドを使ってファイルを印刷する 必要があります。lpr コマンドはファイルの印刷に必要な事前の処理を すべて行った上で、制御を別のプログラムである lpd (line printing daemon) に渡します。そして、lpd がプリンタに対してファイルの 印刷方法を指示するようになっています。
lpr が実行されると、lpr はまず指定されたファイルを 特定のディレクトリ (スプールディレクトリ) にコピーし、コピーされたファイル は lpd によって印刷されるまでそのディレクトリに置かれます。 lpd に印刷すべきファイルがあるという命令が伝わると、lpd は自分と同じプロセスの分身を作成 (spawn) (プログラマ達はこれを forking と呼びます)します。そして spawn されたプロセスがファイルを印刷する間、 オリジナルの lpd プロセスは次のリクエストを待って待機します。 こうすることによって、 複数のプロセスを同時にキューに入れることが可能になっています。
lpr(1) の構文は、ごく一般的なものです。
もしくは
といった使い方が可能です。lpr コマンドでは、コマンドライン引数を 使って lpr の動作を制御することができます。よく使われる引数としては、 "-Pプリンタ名" で使用するプリンタを指定したり、"-h" で バーストページを出力しないようにしたり、"-s" でスプールディレクトリ にファイルをコピーするかわりにシンボリックリンクを作成したり (大きなファイル の場合に利用されます)、"-#数字" で印刷すべき部数を指定したり します。lpr で複数の引数を使う場合は、例えば次のようになります。
このコマンドは、スプールディレクトリに
lpr コマンドが認識する全オプションの一覧については、 lpr(1) のマニュアルページをご覧ください。
2.3 lpq を使ってプリントキューの状態を見る印刷キューの中身を見るには、lpq コマンドを使います。 引数なしで実行すると、デフォルトプリンタのキューの中身が表示されます。
lpq の出力は、いろいろな使い道があります。
2.4 lprm を使って印刷ジョブをキャンセルする印刷システムに共通する便利な機能として、一旦キュー上に置かれたジョブを キャンセルする機能があります。これを実行するコマンドが lprm です。
上記のコマンドは、そのユーザが所有者となっているプリントジョブを すべてキャンセルするものです。単一のプリントジョブをキャンセルする 場合は、まず lpq でジョブ番号を確認して、その番号を lprm に指定します。例えば、次の例では
デフォルトプリンタ上にあるジョブ 31 番 (
2.5 lpc を使って lpd プログラムを制御するlpc(8) プログラムを使うと、lpd が使用しているプリンタをコントロール することができます。プリンタやプリンタキューの有効・無効を切り替えたり、 キュー内のエントリの順番を変えたり、プリンタやキューの状態を報告させたり することができます。lpc が最も活躍するのは、一台のマシンに複数のプリンタが 繋がっているような環境です。
上記のコマンドで lpc プログラムが起動します。初期設定では、lpc コマンドは 対話モードになっているので、そのままコマンドを打ち込めます。また、コマンド ライン引数として lpc に種々のオプションを指定することもできます。
利用可能なオプション一覧は lpd のマニュアルページに記載されています
が、ここでは読者が知りたいはずの主要なコマンドをいくつか紹介します。
option と記した箇所は、プリンタ名 (lp, print 等) か、
全プリンタを意味する
2.6 RedHat printtool
RedHat の高性能 printtool プログラムについて簡単に紹介します。このプログラム は、magicfilter を使って行っていた処理をすべてこなせるようです。RedHat にはフィルタリング処理をするプログラムがすでに数多くインストールされて います。以下に著者が RH 4.0 とパラレルポートに繋いだ HP LJ 4L という環境 で行ったプリンタの設定方法を記載します (RH の他のバージョンでもおそらく 同様の設定になるはずです)。
手動で
次のページ 前のページ 目次へ |
[ |