こんばんは、芳賀です。
長南さんの説明のおかげで、仕組みが分かりました。印刷する物の
mime タイプと「コスト」に応じて使用されるフィルターが決まり、その
フィルターの中で実際に印刷されているということなんですね。
それに、対処療法も分かりました。フィルターの中で使われている
"mpage" コマンドの "-m" オプションの値を変えれば希望するマージ
ンが得られますね。
ただ、妙なのは、"lp" コマンドの "-o" オプションの使われ方です。
メールをいただいてから、以下のコマンドを試してみました。
$ lp -o page-left=60 -o page-border=double .bashrc
これは 「左マージンを 60pt 確保し、用紙の周囲に2本の枠線を印刷
する」 オプションです。すると以下の結果になりました。
(1) 2本の枠線が、用紙の左端から 2.1cm ほど離れた位置から印刷
されました。
(2) .bashrc 内のテキスト自体は、用紙の左端から 8mm ほど離れた
位置から印刷されました。
この結果からすると、"-o page-left=60" オプションは効いていないわ
けではなさそうです。ただ、長南さんも指摘なさっていますが、使用
されるフィルター cjktexttops には "-o page-left=xx" オプションが渡っ
ていません。また、使われている mpage コマンドには "-P-" オプション
が指定されていますから、mpage の出力、つまり PostScript 形式のファ
イルは、man ページによると、標準出力に送られるようです。てことは、
実際の印刷は別の箇所ってことですよね。
と、ここまで書いて思い出したことがあります。以下のオプション、
* -o cpi=xx
* -o lpi=xx
* -o columns=xx
* -o page-left=xx, -o page-right=xx, -o page-top=xx, -o page-bottom=xx
* -o prettyprint
は、http://www.cups.org/documentation.php/options.html の説明によれば、
テキストオプションと呼ばれており、
CUPS supports several options that are only used when printing plain text files.
These options have absolutely no effect on PostScript, PDF, HP-GL/2, or image files.
CUPS では、プレーン・テキストのファイルを印刷するときにだけ使われる
オプションがいくつか用意されています。このオプションはどれも、PostScript、
PDF、HP-GL/2、画像のいずれに対してもまったく影響を与えません。
だそうです。
ということは、cjktexttops フィルターからの出力が PostScript になっているから、
lp コマンドで "-o page-left=xx" オプションを指定しても無視されるということ
でしょうか。
--芳賀