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

在任何情况下,FileOutputStream都不能写入 URL,所以没有办法让事情以这种方式工作。

Java 有一个完整的打印 API,使用起来并不难。如果你掌握了它,你可以编写一个可移植的程序,在每个平台上解决这个问题。

于 2012-04-11T03:04:53.823 回答