Mark Komarinski <markk@auratek.com> から:
この HOWTO のリライトの労をとってくれた Matt Foster に感謝します。
彼のスタイルを継承するとともに、更新が必要な箇所に手を加えました。
Matt Foster <mwf@engr.uak.edu> から:
Linux Printing HOWTO は、もともと Grant Taylor <grant@god.tufts.edu> と
Brian McCauley <B.A.McCauley@bham.ac.uk> によって作成された文書ですが、
このバージョンでは全体を完全にリライトしました。原著で Grant と Brian が
扱っていた項目についてはなるべくカバーするよう務めましたが、説明のスタイルや
解説の深さについてはかなり変更を加えています。これによって、本書はより
網羅的な読みやすい文書になったと思っています。読者がそれに同意してくれることを
願うばかりです。
v1.2.2
この HOWTO に記載された名称の中には、特定の個人や会社の著作物や商標となって
いるものがあります。本書では、正式名もしくは大文字の略称を使っています。
(c) 1995 Matt Foster (mwf@engr.uark.edu)
Linux HOWTO 文書に基づく翻訳・二次的著作物・結合著作物は、すべてこの
著作権表示に従わなければなりません。
すなわち、ある HOWTO 文書から二次的著作物を作成した場合、頒布に際して
制限的な条件を追加することはできません。ただ、特定の条件下では例外が
認められるので、詳細は下記の Linux HOWTO コーディネイタに連絡してください。
つまり、われわれは、あらゆるチャンネルを通じてこの文書の情報を広めたいと
思っていますが、他方で HOWTO 文書についての著作権を保持したいとも考えて
います。HOWTO 文書を再配布する計画があれば、是非われわれに知らせてください。
質問があれば、Linux HOWTO コーディネイタの Tim Bynum
<linux-howto@sunsite.unc.edu> までご連絡ください。
電話番号その他の連絡先についても、このアドレスにお問い合わせください。
この文書に関する質問・コメント・訂正は、<markk@auratek.com> まで
お送りください。
本書のアルファ版に目を通し、多くの有益なコメントや提案を送ってくれた
全ての方に感謝します。そうした方々の中には、送付したコメントがこの文書に
反映されているのが分かる方がいると思います。
また、最初のリライトを行ってくれた Matt Foster にも感謝します。
このセクションでは、ファイルを印刷する方法、プリントキューを確認する方法、
プリントキューからジョブを削除する方法、印刷前にファイルをフォーマットする
方法、および印刷環境を整える方法について解説します。
セキュリティ上の理由から、root および印刷デーモンと同じグループ
に属するユーザだけしかプリンタに直接書き込むことはできません。lpr
や lprm, lpq 等のコマンドを使ってプリンタにアクセスしなけれ
ばならないのはそのためです。
それゆえ、一般ユーザは lpr コマンドを使ってファイルを印刷する
必要があります。lpr コマンドはファイルの印刷に必要な事前の処理を
すべて行った上で、制御を別のプログラムである lpd (line printing
daemon) に渡します。そして、lpd がプリンタに対してファイルの
印刷方法を指示するようになっています。
lpr が実行されると、lpr はまず指定されたファイルを
特定のディレクトリ (スプールディレクトリ) にコピーし、コピーされたファイル
は lpd によって印刷されるまでそのディレクトリに置かれます。
lpd に印刷すべきファイルがあるという命令が伝わると、lpd
は自分と同じプロセスの分身を作成 (spawn) (プログラマ達はこれを forking
と呼びます)します。そして spawn されたプロセスがファイルを印刷する間、
オリジナルの lpd プロセスは次のリクエストを待って待機します。
こうすることによって、
複数のプロセスを同時にキューに入れることが可能になっています。
lpr(1) の構文は、ごく一般的なものです。
lpr コマンドが認識する全オプションの一覧については、
lpr(1) のマニュアルページをご覧ください。
lpq の出力は、いろいろな使い道があります。
レーザープリンタをお持ちなら、PCL 互換の場合が多いので、話はもう少し
簡単になります。その場合、方法は複数あります。プログラムの中には直接 PCL 形式
で出力できるものがあります。それができないときは、NetPBM といった
プログラムを使えば PCL 形式に変換できます。また、最後の手段として ghostscript
(次章を参照) を使う手もあります。
最も完璧な方法としては、まず NetPBM と ghostscript といったパッケージを
インストールして、次に magic filter もインストールし、グラフィックファイルを
自動的かつ簡単に処理することです。
Ghostscript の役割は、PostScript ファイルのすべての記述をプリンタが理解
できるコマンドに変換することです。Ghostscript を使って PostScript を
印刷するには、次のようなコマンドを使います。
このセクションでは、これまでのセクションで取り上げなかった事柄を解説します。
印刷のたびに使用するプリンタを指定せずとも、環境変数 PRINTER に使用したい
プリンタ名を設定しておくことができます。設定方法は、シェルの種類によって
異なっています。bash の場合は、次のようになります。
Q1. 階段現象 (staircase effect) を防止する方法は?
A1. 階段現象 (訳注:行頭が揃わずに、各行が階段状にギザギザになって印刷されて
しまう現象) が起るのは、行の終了として認識する記号がプリンタによって異なる
ためです。プリンタのなかには、キャリッジリターン (CR) とラインフィード (LF)
のシーケンスで行末が終了すると思っているものがある反面 (DOS スタイル)、
UNIX 系システムで利用されるラインフィードのみのシーケンスで行末が終了する
と思っているものもあります。これを解決する最も簡単な方法は、
お使いのプリンタがこれらふたつのスタイルをなんらか方法で切り替えることが
できるか否かを確認することです。切り替え方法は 2 種類あり、DIP スイッチを
付け変えるか、プリントジョブ開始時にエスケープシーケンスを送るかのいずれか
です。後者の場合には、フィルタを作成する必要があります (Q2 を参照)。
簡単な解決方法は、コマンドラインでフィルタを使うことです。例えば、
次のようにします。
Q2. フィルタとは?
A2. フィルタとは、標準入力 (stdin) からの読み込みを行い、その入力に
何らかの処理を施した上で、標準出力 (stdout) に書き出しを行う
プログラムのことです。フィルタは様々な用途で利用されていて、テキストの
整形もそのひとつです。
Q3. マジック フィルタとは?
A3. マジックフィルタとは、ファイルタイプに応じて前処理を行うフィルタの
ことです。
例えば、単なるテキストファイルの場合は、通常の方法でそのままファイルを印刷
します。もしファイルが PostScript 等のファイルなら、(ghostscript などの)
別の方法を使って印刷します。マジックフィルタの典型例は、magicfilter と
APSfilter です。この種のフィルタを使う際に注意すべきなのは、フィルタ自体を
インストールする前に、フィルタが使用するプログラムを予めインストールしておく
必要があるということです。
というのも、magicfilter がインストールされるとき、magicfilter はシステムを
走査して特定のプログラム (例えば ghostscript などのプログラム - これが
見つかると、PostScript データを扱えることが分かるわけです) がインストール
されているか確認し、その上で検出したプログラムに基づいてビルドされるように
なっています。各種印刷ファイルを全て扱えるようにするには、最低限以下の
プログラムがインストールされている必要があるでしょう。
Q4. Windows 印刷システムはどうですか? Linux で動きますか?
A4. 場合によります。Windows 印刷システム (WPS) のコマンドだけしか受け付けない
プリンタは、Linux では動きません。WPS に加えてそれ以外のコマンドも受け付ける
プリンタ (Canon BJC 610 等) の場合は、WPS フォーマット以外のモードに設定されて
いれば Linux でも動きます。それ以外のプリンタ (HP DeskJet 820Cxi/Cse 等)
は、Linux では動きません。前述した通り、Linux は Win95 マシンのプリントサーバ
として動かすことができます (Samba についての項目を見て下さい)。Win95 には
そうしたプリンタのドライバが含まれているからです。
Q5. ひどい! 6 ページ以上の文書を印刷しようとすると、「ファイルが
大きすぎる」というエラーになる。
A5. /etc/printcap ファイルのオプションのひとつに、印刷ファイルの
最大サイズに関するものがあります。初期設定は 1000 ディスクブロック
(約 500k 程度?) となっています。PostScript 形式のファイルなどでは、
画像を含めて 6 〜 8 ページで容量オーバーになることがあります。
プリンタ定義の項目に次の行が追加されているかどうか確認してください。
プリンタが動かない場合は、
USENET グループに質問を投げる前に、以下の事柄を確認してください。
もし上記のうちひとつでも当てはまる場合は、質問をポストする前にもう一度考え
直した方がいいでしょう。また、最終的にニュースグループにポストするときでも、
問題解決に必要な情報をきちんと記載するようにしましょう。「lpr が上手くいかない
のですが、助けてください」といった質問の仕方はしないようにしてください。
そうした質問は、多くの人からほぼ確実に無視されます。使用しているカーネルの
バージョン、エラーが出た経緯、そしてできればシステム上で表示されたエラー
メッセージそのものも記載するようにしてください。
日本語訳に関するお問い合わせは、<JF@linux.or.jp> までお願いします。