プリンタの設定メモ

Hiroshi Takekawa <sian@big.or.jp> first revision, Last Modified: Sun Mar 8 20:56:41 1998.

この文書は、プリンタを設定した時のメモです。導入の際のお役に立てば幸いです。 JF 等の文書を読んで設定したものですので、そちら (特に JPprinting-mini-howto) を先に読んでください。この文書は HOWTO ではございませんので、みなさん全員向けに書かれてるわけではないということも御了承ください。また、この文書

は更新される可能性があります。日付が古いようならば、こちら <http://www.big.or.jp/ sian/linux/>

で最新版かどうかご確認ください。

目次

1 どんな設定が必要か？ 2

1.1 カーネル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 ジョブ管理システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 ブートスクリプト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 /etc/printcap の設定 2

3 gs を使う/etc/printcap の設定 3

4 更新履歴 4 この文書の著作権は Hiroshi Takekawa が所有しております。

(C)Copyright 1998 by Hiroshi Takekawa.

この文書は、自由に配布してかまいませんが、改変しないでください。特に著作権表示を変更/削除してはいけません。

この文書は、役に立つようにと願って書かれておりますが、間違っている可能性があります。この文書によって生じたあらゆる事故等に対する責任を筆者はいっさい負わないものとします。間違いの指摘、御意見、御感想等は広く募集いたしておりますが、プリンタに関しては機種による差もあるかと思われますので、御期待に添えないことも十分に考えられることは御了承ください。

1 どんな設定が必要か？

プリンタを使用可能にするには何をどう設定すればよいかどうか記述します。ただし私は Canon BJC-35v のみしか持っておらず、それだけを対象にしているので、他のプリンタでの設定をこのメモだけでできるかどうかは全く保証できません。

1.1 カーネル

プリンタドライバが入っていることを確認してください。またモジュールにしている場合は modprobe lp などを忘れないよう。

1.2 ジョブ管理システム

まず、 lpr、 lpd といったプリントジョブの管理システムを設定しなければなりません。インストールされてなければインストールから始めなければなりませんが、多くのディストリビューションにおいて、バイナリで提供されていると思いので、インストールで困るということはあまりないかと思います。このシステムは多くの設定を/etc/printcap にて行ないます。これの書き方は後述します。

1.3 ブートスクリプト

さて、この管理システムで印刷するには、 lpd というデーモンプロセスが走っている必要がありますので、それを起動してください。常に使うなら、ブート時に起動するようにしておくといいでしょう。 Slackware なら/etc/rc.d/rc.inet2 で起動されると思います。

以上ですが、 /etc/printcap の設定が要なので、簡単なわけではありません。紙を無駄にするかもしれませんが、めげずにがんばってください。

なお、蛇足ですが、パラレル zip の先にリンクしてるなどという場合は zip の電源が入ってることを確認してください… (うーむ through するだけじゃないのだろうか)

2 /etc/printcap の設定

プリンタにもいろいろ種類がありますが…いわゆる ESC/P をサポートしてるプリンタなら次の設定でいけてしまうのではないでしょうか。

lp|ESC/P filter:\
        :lp=/dev/lp1:\
        :sh:\
        :if=/usr/sbin/escpf:\

        :of=/usr/sbin/escpf:\
        :sd=/var/spool/lpr/lp:\
        :pw#90:pl#66:\
        :mx#0:\
        :lf=/var/spool/lpr/lp/lpr-error:

この設定だと A4 ぎりぎりの印刷になると思います。これを/etc/printcap に書いてください。他に lp で始める行があったら削除するかコメントアウトしてください。私は以前コメントに埋もれてあった Generic printer の設定を見落していてはまりました…。

それでは、印刷してみましょう。 lpd は走ってますね？紙は大丈夫ですか？プリンタの電源は入ってますね？ではやってみましょう。

% lpr filename

プリンタが動いて印刷できた方、おつかれさまでした。もう終りです。動かなかった方、すみません。 ESC/P モードであるかもう一度ご確認ください。手動で設定できるなら設定してみてください。うまくいかなければ後述の gs を使うという方法もあります。

ちなみにこの設定は、 JPprinting-mini-howto のものを、 escpf の PATH を PJE 向けに変えただけです。 (しかも/usr/lib/escpf-¿../sbin/escpf なので別に変更しなくてもいい)。 HOWTO は本当に役に立ちますよね。

さらに後でわからなくならないように下のような注釈を私はつけました。

# lp スペシャルファイルを指定します。プリンタポートの I/O アドレスによって

#    0x3bc:/dev/lp0  0x378:/dev/lp1  0x278:/dev/lp2 となります。

# sh カバーシート (出力したホスト名やユーザ名が印字される) の出力を抑制します # if Input Filter です。文字通り入力データのフィルタです。例えば課金情報 # 等を処理する場合に使用されます。ここでは JE に含まれる ESC/P 用のフィ # ルタを指定していますが、特別何もしていません。 # of Output Filter です。出力データのフィルタです。ここで 1.2 節で説明し # た変換などをおこないます。 JE に含まれる ESC/P 用のフィルタを指定して # いますが、特別何もしていません。 # sd スプールディレクトリを指定します。これは 1 のプリンタ名毎に作成します # pw 印字桁数の指定です # pl 印字行数の指定です。 # この指定は、 escpf フィルタにおける A4 でぎりぎりのサイズです。 # mx スプールする最大ファイルサイズの指定です。 0 を指定すると無制限になります # lf ログファイルの指定です。エラー発生時に記録するファイルです。

これも mini-howto のものを C&P して変更しただけです。

3 gs を使う/etc/printcap の設定

対応したプリンタならば gs を使って PostScript をプリントアウトすることもできます。…というわけなので、 PostScript プリンタをお持ちの方には無意味な section です。あ、でも Color でないなら意味がありますね。普通の Color プリンタで ColorPostScript プリンタのかわりができます。

まず、 gs(ghostscript) が入っているかどうか確認してください。入ってなければインストールしましょう。これもバイナリが収録されていると思います。自分で構築すると、日本語 PDF が表示/作成でき、 VFlib+FreeFont できれいに出力、なんてことができます。 (今 article9.ps を出してみたらとてもきれいでした。 )

さて、設定ですが、フィルタとして gs を使うように設定するだけです。

私の場合は、

ps|gs|GhostScript printer:\
        :lp=/dev/lp1:sh:mx#0:\
        :if=/usr/local/sbin/gsf:\
        :sd=/var/spool/lpr/ps:\
        :lf=/var/spool/lpr/ps/lpr-error:

となります。 /usr/local/sbin/gsf は次のようなフィルタスクリプトです。

#! /bin/sh
/usr/local/bin/gs -q -dNOPAUSE -sDEVICE=bjc600 -r360 \
                -sPAPERSIZE=a4 -sOutputFile=- -

bjc600 の部分を自分のプリンタのドライバに置きかえてください。どんなドライバがあるかは、 gs -h で表示されます。印刷してみるには、

% lpr -Pps article9.ps

などとやってみてください。でてきましたか？ここまでいけば、

% dvi2ps *.dvi | lpr -Pps

として、 dvi を印刷することもできます。この文書は SGML で書かれているので、 dvi も用意されていますので、この文書を印刷してみることもできます。

4 更新履歴

# Last Modified: Sun Mar  8 20:56:41 1998.
# $Id$
#$Log$