CUPS(The Common UNIX Printing System)がやってきた

D:20060102 免責事項

sargeではeasyprがなくなったんですね。そうですか、いよいよCUPSを使うことになりましたか。いままで何回か設定に失敗しているのでちょっと億劫なんですが。apt-cache show cupsysRecommendsSuggestsを見て、とりあえず下記の関連パッケージをインストールしました。

ii  cupsys                      1.1.23-10   Common UNIX Printing System(tm) - server
ii  cupsys-bsd                  1.1.23-10   Common UNIX Printing System(tm) - BSD commands
ii  cupsys-client               1.1.23-10   Common UNIX Printing System(tm) - client programs (SysV)
ii  cupsys-driver-gimpprint     4.2.7-10    Gimp-Print printer drivers for CUPS
ii  cupsys-driver-gimpprint-dat 4.2.7-10    Gimp-Print printer drivers for CUPS

しかし、世の中には「案ずるより産むが易し」という諺があるのでした。結果的には割とスムーズに事は運んでうまくいきました。アプリケーションのバージョンも(当然)上がっているし、以前に比べたら情報量も増えているように思えます。これも開発に携わっている方々の努力のおかげですね。感謝しております。

CUPSの設定(ネットワークプリンタ編)

まずは、アプリケーションと一緒にインストールされた文書[3] を参考にしてプリンタの登録をします。

  1. WEBブラウザからログイン(user:root、passwd:rootのパスワード)

    ブラウザのアドレス欄にhttp://localhost:631を入力してログインします。表示された画面の「管理」をクリックして始めます。また「オンラインヘルプ」のリンクからマニュアル類が参照できます。

  2. 「Admin」画面に入る

    「プリンタ」>「プリンタ追加」をクリックして先へ進む。

  3. プリンタに名前をつける

    ウチの場合は「Canon_Pixus560i」です。他の項目はブランクで次へ進む。

  4. プリンタのデバイス

    ウチはネットワークプリンタなので「LPD/LPR Host or printer」を選択。普通ネットワークプリンタといえばインテリジェントな端末につながったプリンタを想定するかもしれないけど、ウチで使っているのはcoregaのPServerという製品でプリンタにイーサネットの口をつけただけの単純な仕組みなんです。[4]

  5. プリンタのデバイスURI

    ここはlpdを使うんですね。ipphttpではなく「lpd://192.168.0.10」とします。queueは付けません。当然だがIPアドレスはネットワーク固有のものです。

    前項とも関係しますがプリントサーバがどのプロトコルをサポートしているかを確認する手段は「DebianCUPS」から手繰っていった先の「CUPS Printing Setup Mini-HOWTO」というWEBページで説明がありました。ここで解説されているnmapというツールでプリントサーバを調べたところつぎのような結果になりました。

    ...
    Interesting ports on corega19CB4B (192.168.0.10):
    (The 1660 ports scanned but not shown below are in state: closed)
    PORT     STATE SERVICE
    21/tcp   open  ftp
    515/tcp  open  printer
    9100/tcp open  jetdirect
    
    Nmap finished: 1 IP address (1 host up) scanned in 13.985 seconds
    

    さきほどのMini-HOWTOのページからポートとプロトコルの関係を下記に引用させてもらいます。これらを突き合わせるとウチのプリンタは515番ポートが開いているからLDPを使えばいいのだなと判断しました。9100も同様ですね。

    ...
    port	protocol
      23	printer admin via telnet
      80	printer admin via web
     139	printing via SMB
     515	printing via LPD
     631	printing via IPP
    9100	printing via TCP/Socket (can be also other ports > 1023)
    ...
  6. プリンタのモデル名/ドライバ

    メーカ名:Canon。

    モデル名:CANON BJC 7000 - CUPS+Gimp-Print v4.2.7(en)

    用意された一覧のなかに「Pixus 560i」に該当するモデル名はないので適当に近いと思われるところを選んだ。このへんは試行錯誤して、結果オーライです。

  7. プリンタの追加完了

  8. テストページを印刷する

    「テストページ印刷」で動作確認をする。また、必要に応じて「印刷設定」で細かい調整をする。

テストページが無事印刷完了したことを確認したところでプリンタ登録の作業は終りです。

アプリケーションからの印刷を確認する

WEBブラウザ(Firefox/1.0.4 (Debian package 1.0.4-2sarge5))やPDFファイル(Adobe Reader 7.0.1)からの印刷も大丈夫。プリントダイアログはアプリ毎に微妙に異なるので念のためスクリーンショットを提示しておきます。最初にWEBブラウザですがプリンタは「PostScript/Canon_Pixus560i」を選択。あとはプロパティで用紙サイズをA4に変更。

Adobe ReaderのほうはポストスクリプトオプションでLevel2を指定します。Level3はまれに文字化けすることがある。

emacsからの印刷はe2psを使っているが、どうもこれがうまくない。複数ページのファイルが改ページされずに一枚の用紙に印刷されてしまう。以前[debian-users:41502]あたりで話題になっていた問題はまだ解決されていないようだ。[5]



[3] 参考文書:/usr/share/doc/cupsys直下のファイル群

[5] いままで使っていたコードをメーリングリストで示されていたように編集して使っています。このリンク.xemacs/init.elの該当部分を抜き出したものです。