[samba-jp:19808] 最後に1枚空白ページが出力される

ribbongw master ribbon @ ns.ribbon.or.jp
2007年 10月 28日 (日) 09:43:42 JST


太田です。

久しぶりにSambaでプリンタ機能を使おうとして、はまってしまいました。

動かしているのはFreeBSD 6.2R で、プリントシステムは bsd(=lpr)。

smb.confの当該部分は、

----------------------------------------------------
        printcap name = /etc/printcap
        print command = lpr -r -s -P%p %s
        printing = bsd

.....

[printers]
        comment = HP957C
        path = /tmp
        guest ok = Yes
        printable = Yes
        browseable = yes

------------------------------------------------------
printcap は

lp|local line printer:\
        :sh:\
        :of=/tmp/dtee:\
        :lp=/dev/ulpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:

(ofについては後述)

--------------------------------------------------------------
です。取り立てて変わったことはしてないつもりです。

で、Samba経由で印刷すると、なぜか、正常終了した後に、一枚空白の
紙が出てしまいます。printcap に sh を付けているのでヘッダ抑制は
していますが、それが影響しているとも思えません。

そこで、PC上で印刷データをファイルに出力し、比較してみました。

ファイル出力データをFreeBSD上に持ってきて末尾を見ると、

0003740 201  \0 201  \0 334  \0 001 377 200   8   w 201  \0 201  \0 334
0003750  \0  \0   `   5   2   7   7   Y 033   *   r   C  \f 033   E 033
0003760   %   -   1   2   3   4   5   X

となっています。これをそのまま

cp -p ファイル名 /dev/ulpt0

とすると、正常に印刷できます。しかし、前述のprintcap にあるように、
ofにデバッグ用のフィルタをつけて、(中身はshell で tee しているだけ)、
プリンタにわたるところのデータを見てみると、

0003740 201  \0 201  \0 334  \0 001 377 200   8   w 201  \0 201  \0 334
0003750  \0  \0   `   5   2   7   7   Y 033   *   r   C  \f 033   E 033
0003760   %   -   1   2   3   4   5   X  \f
0003769

となって、末尾に改ページコードが付いてしまっています。これが悪さを
しているようです。

if には何も書いていないのですが、どこかで \f を付けているようです。
これがどこで付いているのか、これを抑制するにはどうしたらいいか、どなたか
ご存じないでしょうか。



samba-jp メーリングリストの案内