1

ファイルをプリンタに直接送信して印刷するために、この小さな Java プログラムを作成しました。

public static void main(String args[]) throws IOException  
{
    try{
        InputStream in= new FileInputStream(new File("C:\\example.txt"));  
        OutputStream out=new FileOutputStream(new File("\\\\path\\printer\\example.txt"));  

        // Transfer bytes from in to out  
        byte[] buf=new byte[1024];  
        int len;  
        while ((len=in.read(buf)) > 0) {  
           out.write(buf,0,len);  
        }  
        in.close();  
        out.close();  
    }
    catch(Exception ex)
    {
        ex.printStackTrace();
    }
}

これは Windows では正常に機能しますが、Mac では機能しません。

Mac Os Xで同じことを行うにはどうすればよいですか?

Macマシンでローカルにあるフォルダーから別のフォルダーにファイルをコピーしようとしたが、FileOutputStreamがリモートフォルダーを取得したときは機能しないことに注意してください。

4

1 に答える 1

0

ファイル共有の場合、そのようなUNCパスを次のようなものに変換できます。

smb://server/folder/file.txt

しかし、これがプリンター共有で可能だとは思いません。もっと複雑だと思います。SMBプリンターのURLは次のようになります

smb://username.password@workgroup/computer/printer

いずれにせよ、FileOutputStreamURLに書き込むことはできないため、このように機能させる方法はありません。

Javaには、それほど難しくない印刷APIがあります。それをマスターすれば、すべてのプラットフォームでこの問題を解決するポータブルプログラムを書くことができます。

于 2012-04-11T03:04:53.823 に答える