キヤノン iRC3100 両面印刷用フィルタ - YAMADA's WEBSITE

Back to Top Page

最終更新: 2004 年 5 月 4 日

キヤノン のカラー複合機 iRC3100 で,UNIX 系 OS から両面印刷するためのフィルタです.たいしたブツではありませんが世の中に存在していないようなので公開します.必要な方はどうぞ持っていって下さい.FreeBSD 4.9-RELEASE での動作を確認していますが,他の OS でもまず動くでしょう (っていうか動かないとなると何で?って感じです).

同じ原理でステイプラフィルタ (1 部毎にホッチキスを入れてくれる) とかできそうですが,元気がないのでやっていません.元気な方どうぞ作って下さい.

また,カラーのものを強制的に白黒にするフィルタなんかもあれば (経費削減の観点からも) いいなあとも思っていましたが,Windows 版のドライバは小手先の手 (白黒にしなさいとかいう類の命令を PS に挟むとか) ではなく画像を白黒に convert した PS をプリンタに送っているようでしたので断念しました.カラー の PS を白黒に変換するようなツールがあれば実現できそうですが,どなた様かそのようなツールの存在をご存知であればご教示いただければ幸いです.

お願い

このページの記述内容について,キヤノンさんにお問い合わせになることはご遠慮ください.何かありましたら やまだ (tyamada at is.s.u-tokyo.ac.jp) までお願いします.

フィルタ

下記を適当なファイル名で保存した上で,printcap や printers.conf などで適当にかまして使って下さい.perl への path は環境にあわせて変更して下さい.printcap などの書き方については man とか詳説しているウェブページとかがあると思いますのでここでは触れません.

作り方

Windows 版のプリンタドライバが吐く PS を参考に作りました.大したことはしていませんが,メーカが PS プリンタの UNIX 用両面フィルタを公開していない場合に汎用的に使える手なので,手順を以下に列挙します.

  1. どんなプリンタでも Windows 版のドライバはあると思うので,まず手近な Windows マシンにそのプリンタの PS 版プリンタドライバをインストールします.
  2. その Windows マシンで「何か」 (何らかのウェブページとか.なんでもいいです) を印刷し,印刷結果をファイルに保存します.両面印刷なし,長辺綴じ,短辺綴じで同じものを 1 部ずつ印刷します.両面印刷以外のオプションは一緒にしておいたほうが無難です.
    • Windows で印刷結果をファイルに保存するには,「ファイル (F)」→「印刷 (P)」で出てくるウィンドウの中の「ファイルに出力」をチェック.
  3. 保存された印刷結果の diff をとります.すると,両面印刷するためにどのような命令をプリンタドライバが吐いているかわかります.
    • 例えば今回の場合 iRC3100 で「両面印刷オプションなし」と「両面印刷 (長辺綴じ)」との diff をとると

      $ diff default.ps dup.ps
      ...
      216c222
      < %%BeginFeature: *EFDuplex False
      ---
      > %%BeginFeature: *EFDuplex LongEdge
      218c224,225
      <    /XJXsetduplex where { pop false XJXsetduplex } { << /Duplex false >> setpagedevice } ifelse
      ---
      >    userdict /XJXsetduplex known { true XJXsetduplex } if
      >   userdict /XJXSetBinding known { (long) XJXSetBinding } if
      ...

      といった結果になりました.これで,両面印刷用の命令の目星がだいたいつきました.
  4. あとは,PS に両面印刷するのに必要な命令を挿入するようなスクリプトを何らかの言語で記述してできあがりです.

謝辞

いろいろつっこんでくださったりテストに協力してくださったりした伊藤剛志さんに感謝します.


Copyright (C) YAMADA Takashi 2002-2004.