vine-users ML アーカイブ



[vine-users:077372] Re: CUPS lp コマンドの "-o page-left=xx" が効かない

  • From: Yasufumi Haga <yasufumi.haga@xxxxxxxxx>
  • Subject: [vine-users:077372] Re: CUPS lp コマンドの "-o page-left=xx" が効かない
  • Date: Mon, 30 Jul 2007 01:25:21 +0900
こんばんは、芳賀です。

長南さんの説明のおかげで、仕組みが分かりました。印刷する物の
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" オプションを指定しても無視されるということ
でしょうか。

--芳賀