lipsf って何?


lipsf の配布パッケージにある README には以下のようなことが書かれています。
lipsf は、 UNIX ベースの OS (以下便宜上単に "UNIX" と呼ぶ) 汎用に作られた Canon LASERSHOT 用のテキスト印刷フィルタです。 LIPS と呼ばれる Canon 独自規格の制御コードを出力することで、 書式やプリンタ環境を選択可能です。
UNIX のプリンタ関連ツールで「フィルタ」と聞くと、 /etc/printcap の if= に記述するような単純なものを想像しがちですが、 lipsf は単なる text → PDL(Page Description Language) 変換ではなくてレイアウト機能を備えたテキスト編集を行なう高機能フィルタです。 良く if 用のフィルタとして紹介されることがあるのですが、 if 用途には機能が多過ぎていささか重たいのでお奨め出来ません。
lipsf で推奨されている用法は、 if フィールドを用意しない素通しのプリンタエントリを用意して、 lipsf がそのプリンタエントリに吐き出すという用法です。 man page にも記述がありますが、 具体的にはこのようなエントリを /etc/printcap に追加してやります。
lipsf|Canon LASERSHOT for lipsf:\
	:lp=/dev/lp0:sh:sf:mx#0:\
	:sd=/usr/spool/lipsf:\
	:lf=/usr/adm/lipsf-errs:
sd や lf フィールドに書かれたディレクトリやファイルを適宜用意してやり、 lpc(8) コマンドで「start lipsf」と実行します。 これで準備は完了です。 lipsf はエントリの中から「lipsf」という名前のプリンタエントリを選んで、 そこに対し PDL を出力します。

勿論、 紹介されているような if 用の使い方も出来ますが、 そういった用法では印刷レイアウトを細かく制御することが出来ません。 lipsf は様々なオプションを備えていますので、 コマンドラインからそのオプションを指定して印刷レイアウトを自由に設定出来るのです。
ここで用いられるオプションは非常に多く、 ここではその全部を説明しきれませんので、 詳細は man page を参照して下さい。 機能的な紹介としては、 むしろ lipsf のフロントエンドである POLS の紹介をした方が判り易いでしょう。

POLS は lipsf に渡すべき各オプションを、 キャラクタベースのインタフェースを用いて視覚的に設定するツールです。

カーソルを移動し、 その項目に対する値を数値入力または選択により決定していきます。 全体的なオペレーションはメニュー選択形式になっていますので、 マニュアル等の記述を読むよりこのインタフェースの方が直感的で呑み込み易いでしょう。
このようなフロントエンドと共に用いることで、 lipsf は単純なテキストファイルを自由なレイアウトで容易に印刷出来るツールなのです。


戻る