LBP6710iでLinuxから(無理やり)印刷する

失敗した。Linuxに対応していないCanon Satera LBP6710iを選んでしまった。LIPSだからサポートしてると思ったのだが……

仕方ないので最低限、論文を両面印刷できるように頑張ってみた。
結論から言うと、LIPS IV用のppdにLBP6710i用の設定を書き加えてやることでA4に両面印刷できるようになった。

追記: 作成したppdファイルを公開した。ただし動作を確認したA4のみ設定してあるので他の用紙サイズが必要な場合は各自追加確認を。 http://www.mma.club.uec.ac.jp/~ytoku/LBP6710i.ppd
追記2: 印刷できないケースが多いので諦めた。 → GNU/Linux(CUPS)からWindows 7経由でLinuxに対応していないプリンタに印刷する - ytokuがつまずいた跡


前提として、LIPSLX Printer Driver for Linuxはインストール済みである。

まず、CUPSのドライバ選択で下位機種っぽいLBP6700を選んでみた。印刷してみるとPC側からは動いているように見えるがプリンタが「印字データのバージョンエラーが発生しました」と言ってくる。駄目か。
次に、スペック表によればLIPS IV以前もサポートしているはずなので、Canon LIPS-IVv Foomatic/lips4vを選んでみたところ、テストページの印刷ができた。
ところがevinceからpdfをA4で印刷しようとしてみると、用紙サイズが合わない旨の「以下の用紙をセット 80R 普通紙」というメッセージ。
プリンタとppdファイル内の用紙設定があっていないのだろうと見当をつけて、正しい設定を求めてMacOSX用ドライバ*1からppdファイルを拝借した。
なお次のような感じでGNU/Linux環境でdmgファイルからppdファイルを取り出した。

$ cd temp
$ dmg2img ../macx-lipslx-v1000.dmg macx-lipslx-v1000.img
$ sudo mount -t hfsplus -o loop ./macx-lipslx-v1000.img /mnt
$ xar -x -f /mnt/UFRII_LT_LIPS_LX_Installer.pkg
$ gzip -dc Canon_Family_Printer_DeviceCNPZULBP6710ZU.pkg/Payload | cpio -idv
$ gzip -d Library/Printers/PPDs/Contents/Resources/CNPZULBP6710ZU.ppd.gz

/etc/cups/ppd/以下からコピーしてきたppdファイルにMacOSXからもらってきた用紙設定を埋め込んでみる。
手当たりしだいに設定のコピーを行ったが、主に次の項目である。

  • HWMargins
  • VariablePaperSize
  • MaxMediaWidth
  • MaxMediaHeight
  • PageSize
  • PageRegion
  • ImageableArea
  • PaperDimension

A4を選んで印刷。まだ動かない。はたと気づいてA4 (Print Area-Large)を選んで印刷してみたところ印刷に成功した。

さらに両面印刷のためにDuplex関連の設定をコピーした。しかし、MacOSX用のppdファイルからCNDuplexをコピーしてきても印刷ダイアログで両面印刷の項目がグレイアウトしていた。
かわりに、Linux用の他のプリンタのppdファイル(/usr/share/cups/model/CNCUPSLBP6700ZJ.ppd)から

*OpenUI *Duplex/Duplex: PickOne
*DefaultDuplex: None
*Duplex None/OFF: "<</Duplex false>>setpagedevice"
*Duplex DuplexNoTumble/ON (Long-edged Binding): "<</Duplex true/Tumble false>>setpagedevice"
*Duplex DuplexTumble/ON (Short-edged Binding): "<</Duplex true/Tumble true>>setpagedevice"
*CloseUI: *Duplex

というのをコピーしてみたところちゃんと表示され、両面印刷も機能した。めでたしめでたし。


このままppdファイルを公開すると、GPLLinux用ppdはともかくMacOSX用のppdファイルの方はライセンス的にもまずい気がするので、あとで整理したppdファイルを追記で公開しようと思う。

追記: 公開した。ページ上部参照。

*1:MacOSXもCUPSである。というかCUPSの現在のメンテナはAppleである。