gdevescv.cを改造する話

Vine Linuxのアップデートされたghostscript(7.07-0vl25.1)で、 EpsonのモノクロプリンタLP-S4500がサポートされたというので試してみた。 (ghostscriptをアップデートして、 LP-S4500用PPDファイルをCUPSに組み込む)

困った点が、2点あった。

  1. カラーの画像をそのまま出そうとすると、 横に間延びした印刷結果となる
  2. 白黒二値の画像を印刷すると、 色が反転して出力される

ghostscript内のeplaserのパッチがあたった後の 当該のソースファイルgdevescv.cを 見てみると、以下のことが分かった。

  1. モノクロプリンタに対し、グレー画像とカラー画像の出力に 同じ命令を使っているが、データはグレーの方が8bpp、 カラーの方が24bppをそのまま送り込んでいる。
  2. 二値画像を印刷する際、カラープリンタへは0なら黒、1なら白と 色を指定してるが、モノクロプリンタへの指定はない。 (そのため1なら黒を印刷するようだ)

そこで、これらの点を改造するパッチを作成した。 (パッチパッチを含むSRPMファイル)

とりあえず使ってみると、動いているように見える。

余談

PPDファイルの、「*FoomaticRIPCommandLine」の行に 「-dPARANOIDSAFER」があると、 AcrobatReaderの吐くPostscriptファイルが変換できないようだ。 「-dSAFER」くらいに書き換えておいたほうが良いかもしれない。