"ファイルへ出力" を使用してカンマ (,) が含まれるファイル パスを指定すると 0 バイトのファイルが出力されることがある

適用対象: Windows Vista BusinessWindows Vista EnterpriseWindows Vista Home Basic

現象


"ファイルへ出力" などを使用して印刷結果の宛先にファイルを指定する場合、カンマ (,) が含まれたファイル パスを宛先ファイルとして指定して印刷すると、0 バイトのファイルが出力されることがあります。

この問題は、Microsoft XPS Document Writer を使用して印刷結果をファイルに保存する場合にも発生します。

原因


Windows では、プリンターの宛先ポートにファイルが指定されている場合、アプリケーションから指定された宛先ファイルへのパスを宛先ポート名として指定します。

印刷命令を受け取ったスプーラーサービスでは、カンマ (,) が特別な意味を持つ文字であり、ポート名の解析処理において、カンマ (,) よりも後ろの文字列が決められた識別子であるかどうかを確認します。

ファイルパスにカンマが含まれていた場合には、宛先ポートにカンマ (,) が含まれているため、カンマ (,) よりも後ろも文字列が正しい識別子として認識されず、宛先のポート名を間違って解釈したまま印刷処理が終了します。

このため、プリンターの宛先としてファイルが指定されている場合、出力ファイルのパスにカンマ (,) を含むパスを指定して、正しく印刷することはできません。

この問題は、Windows の動作上の制限事項です。

解決方法


"ファイルへ出力" などを使用して印刷結果の宛先にファイルを指定する場合には、宛先のファイル パスにカンマ (,) が含まれないようにしてください。