Windowsで共有しているプリンタに出力

http://www.jp.freebsd.org/QandA/HTML/1470.html
http://home.jp.freebsd.org/cgi-bin/showmail/FreeBSD-users-jp/38229

共有プリンタへの接続テスト

$ smbclient '\\WINDOWS_PINT_SERVER\Printer' -P -d 4 -N
...(中略)...
Domain=[MSHOME] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
 session setup ok
 tconx ok
smb: \> 

オプションの意味:

  • -P : プリンタへ接続
  • -d : デバッグモード
  • -N : パスワードを聞かない


以下のシェルを書く。

/usr/local/bin/gsf

#!/bin/sh
OF=/var/tmp/gsf.$$.LIPS4
trap "rm -f $OF; exit 1" 2 15
touch $OF
chmod 600 $OF
{ echo showpage ; echo quit ; } | \
/usr/local/bin/gs -q -dSAFER -dNOPAUSE -sDEVICE=lips4 \
-sPAPERSIZE=a4 -sOutputFile=$OF $1 > /dev/null 2>&1
/usr/local/bin/smbclient '\\WINDOWS_PRINT_SERVER\Printer' \
-P -N -c "print $OF"
rm -f $OF
exit 0


プリンタの共有名が日本語だと接続できないようです。