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

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

対象

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

  • Samba 2.0.9 日本語版リリース1.0
  • Samba 2.0.7 日本語版
  • Samba 2.0.7
  • Windows Me
  • Windows 2000
  • Windows 98
  • Windows 95
  • Windows NT 4.0

現象

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

例えば、「新規テキスト文書.txt」というファイルを「MS Word」で印刷すると、最初は「MicrosoftWord-新規テキスト文書.txt」というドキュメント名で表示されますが、しばらく経つと、「MicrosoftWord-VKeLXg.txt」と表示されます。

原因

これは現在の Samba の仕様になります。ただし、表示レベルの不具合のため印刷の実行に支障はありません。

Samba は、ドキュメント名として、印刷時にWindowsから受け取った印刷データを一時的に保存するために作成する一時ファイルの名前を返却します。 Samba 2.0.7 では、このファイル名を Windows から渡された印刷ファイル名にすることで、ドキュメント名として表示される名前をある程度意味の通じるものにするような配慮がなされましたが、この部分は日本語に対応していません。このため、日本語を含むドキュメント名は、英数字の部分だけを切出した意味不明のファイル名へと変換されてしまいます。

なお、Samba 2.0.5a までは、このファイル名としてクライアントの NetBIOS 名に任意の文字列を加えたものが生成されていました。この任意の文字列はlibrary 関数 mktemp() を用いて生成されたものでランダムな値です。従って今回の事象自体は発生しません。

対応策

Samba 2.0.10日本語版リリース1.0以降では、この問題は修正されています。

Samba 2.0.7日本語版リリース2.2は以下の暫定パッチにて対応しました。この仕様が問題となる場合はこのパッチをソースに適用した上で、再コンパイルを行なってください。 またSamba 2.0.7オリジナル版およびリリース2.2以前のSamba 2.0.7日本語版に対しても、同様のロジックを適用することで、この問題を修正することが可能だと考えられます。

samba-2.0.7-ja-2.2_printjob.patch

ただし、このパッチを適用しただけでは、ファイル名が長すぎるため殆んどの場合「...」という名前に略記されてしまいます。この問題についての対処については印刷時に長いドキュメント名が正しく表示されないを参照してください。

この技術情報は samba-jp:09308 からの一連のスレッドの議論を元に作成されています。