[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 メーリングリストの案内