印刷時に長いドキュメント名が正しく表示されない

提供:Samba-JP
2006年8月10日 (木) 01:54時点におけるRibbon (トーク | 投稿記録)による版 (J0022)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動検索に移動
KB番号 J0022
最終更新日 2001/06/30
作成者 たかはしもとのぶ
最終更新者

対象

この文書は、以下のプロダクトに付いて説明したものです。

  • Samba 2.0.9 日本語版
  • Samba 2.0.7 日本語版
  • Samba 2.0.7
  • Windows Me
  • Windows 2000
  • Windows 98
  • Windows 95
  • Windows NT 4.0

現象

Windows から Samba サーバに対して、日本語の名前や長い名前を持ったドキュメントの印刷を行なうと、[コントロールパネル]の[プリンタ]から各プリンタのアイコンをクリックすると現れる画面で、長いドキュメント名が正しく表示されません。

例えば「01234567890123456789012345678901234567890123456789」 というファイルを印刷すると、「...6789012345678901234567890123456789」 と表示されます。

原因

Samba は、ドキュメント名として、印刷時にWindowsから受け取った印刷データを一時的に保存するために作成する一時ファイルの名前を返却します。 このファイル名を取得するのには、lpq command パラメータで指定したコマンド (printing=BSD の場合は lpq) を使用します。この時使用するコマンドの仕様により長いファイル名が削られることがあります。

対応策

lpq command に指定されたコマンドの仕様を確認して、長いファイル名を省略して表示しないように設定してください。

printing = BSD の場合、長い名前を表示するためにはlpqコマンドに-lオプションを付けますが、その場合はlpqコマンドの出力フォーマット自体が変わってしまうため、Sambaが期待する出力形式にするための整形が必要になります。

以下 lpq command の設定例を幾つか示します。

 lpq command = lpq -P%p -l | awk '/\[.*\]/{u=substr($1,1,length($1)-1);n=$2;i=substr($4,1,3)}/^\t/{print n,u,i,$0}'
 lpq command = lpq -l -P%p | \
               sed -e '/]$/N' \
                   -e 's/^\(.*\): *\(.*\) *\[.* \(...\).*\n/\2 \1 \3/'