また、同時に、txt2lips というコマンドを印刷時のフィルタに使用する設定も行う。txt2lips は、入力された内容を Cannon のレーザープリンタで用いられる言語(LIPS)に変換してくれるフィルタである。GhostScript を通して PostScript 形式に変換するよりもこちらの方が高速なので、文字だけ出力する場合はこちらを用いた方が快適である。
Package Version ───────────────── libc6 2.0.7.19981211 libjpegg6a 6a-12 libpaperg 1.0.3-11 libpng2 1.0.2b-0.1 svgalibg1 1.3.0.19980916 vflib 2.22pl10-5 xlib6g 3.3.2.3a-11 zlib1g 1.1.3-2 gsfonts 5.10a-1 gs-aladdin-vflib 5.10-7 ghostview 1.5-19 zeitfonts 1-4 ───────────────── |
Package Version ───────────────── txt2lips 1.10-3.1 kcc 2.3-6 ───────────────── |
説明
基本的には、lpd を利用して印刷を行えるリモートホストの一覧を /etc/hosts.lpd に記述すればよい。 |
説明ここでは、lp・lp1・lp2・ps という4つのプリンタを定義している(ハードウェアとしてのプリンタはひとつ)。/etc/printcap の内容の説明は以下の通り。 |
これらのファイルを実行形式にする。
# chmod 755 /etc/filter.ps # chmod 755 /etc/filter.text1 # chmod 755 /etc/filter.text2
# mkdir /var/spool/lpd/lp # mkdir /var/spool/lpd/lp1 # mkdir /var/spool/lpd/lp2 # mkdir /var/spool/lpd/ps
各スプールディレクトリのファイル属性を設定する。
# chown root /var/spool/lpd/lp* # chown root /var/spool/lpd/ps # chmod 775 /var/spool/lpd/lp* # chmod 775 /var/spool/lpd/ps
下のような感じになっていれば良い。
# ls -la /var/spool/lpd/ total 6 drwxrwxr-x 6 lp lp 1024 Feb 27 06:35 . drwxr-xr-x 6 root root 1024 Nov 26 23:41 .. drwxrwxr-x 2 root lp 1024 Feb 27 06:35 lp drwxrwxr-x 2 root lp 1024 Feb 27 06:51 lp1 drwxrwxr-x 2 root lp 1024 Feb 27 06:36 lp2 drwxrwxr-x 2 root lp 1024 Feb 28 10:02 ps
設定ファイル中の printers セクションを、例えば次のように記述すればよい。
[printers] comment = Cannon LASERSHOT B406E path = /tmp create mask = 0700 guest ok = Yes print ok = Yes printer name = lp browseable = Yes |
以上で、一通りの設定は終わりである。Samba を再起動して、実際に Windows から印刷できるか、テストしてみよう。
# /etc/init.d/samba restart
ここでは、Mac OS の PPD ファイルを流用する(adobe の FTP サイトに、いろいろな PPD ファイルが公開されているらしいので、そこからダウンロードしてたものを使っても良い)。
Mac OS の [システムフォルダ]/[機能拡張]/[プリンタ記述ファイル] の下に、"LaserWriterII NTX-Jv50.5" というファイルがあるか確認する。もし無ければ、Mac OS のインストール CD-ROM からプリンタドライバ関連のものを追加インストールするか、adobe の FTP サイトからダウンロードする。
このファイルのファイル名を空白のないもの(例えば、"lw2ntx" )に変更し、netatalk が稼働しているサーバに転送する。 転送したファイルの改行コードを perl を使って変換する。 転送先のファイルが /home/hoge/lw2ntx であれば、
$ perl -pe 's/\r/\n/g' /home/hoge/lw2ntx > /home/hoge/lw2ntx.ppdこれを、分かりやすい場所(どこでもかまわない)に移動する。
$ sudo -s # mv /home/hoge/lw2ntx.ppd /etc/netatalk/
次に、netatalk の設定ファイル( /etc/netatalk/papd.conf )を編集する。
shukin-ps:\ :pr=| lpr -Pps:\ :op=operator:\ :pd=/etc/netatalk/lw2ntx.ppd: |
使用プリンタ名の記述、あるいはサーバ内で実行されるプリントコマンドそのものを記述するエントリである。 Debian のバグリポートによると、 ここで示した例のように、パイプ記号 "|" +印刷コマンド( lpr -P[プリンタ名] )という形式で記述しないと印刷してくれないらしい(これでちょっとハマった)。 この例の中の "-Pps" というのは GhostScript を利用して PostScript - LIPS 変換うように設定したプリンタ "ps" の使用を指定している部分である(プリンタの設定については前述)。
op=operator
サーバ内部で lpr を実行して、印刷を行う際のユーザ名である。サーバ内で印刷コマンドを実行できるユーザであればどれでもかまわない。ここでは、ログインユーザでないユーザ "operator" を指定している。
pd=/etc/netatalk/lw2ntx.ppd
プリンタ記述ファイル名(さきほど作成した PPD ファイルのパス名)。
以上で、一通りの設定は終わりである。netatalk を再起動して、実際に Mac OS から印刷できるか、テストしてみよう。
# /etc/init.d/netatalk stop # /etc/init.d/netatalk start