如何在java中未映射的网络打印机上打印PDF?

如何在java中未映射的网络打印机上打印PDF

给出的打印机名称 LIKE(\\ PSCPARKP01 \ CP_P1_OKI20_4)

信不信由Java能够做到这一点非常非常糟糕。 我发现这样做的一种方法是从文件到文件夹执行直接的fileStream复制。 就像是:

File fileToPrint = new File("C://test/test.pdf"); File printFolder = new File("\\\\PSCPARKP01\\CP_P1_OKI20_4"); FileInputStream fis = new FileInputStream(fileToPrint); FileOutputStream fos = new FileOutputStream(printFolder); IOUtils.copy(fis, fos); fis.close(); fos.close(); 

有关此技术的一些注意事项

– 我在这里使用Windows路径,如果你在Linux机箱上运行它是一个完全不同的故事,需要安装到打印机等等,这是一个不同的问题。

– IOUtils是Apache commons库,你需要在你的构建路径中使用jar。

– 这实际上不会调用打印作业,它只是将文档复制到打印队列文件夹中,因此您无法控制打印属性(如页面范围,要打印的份数等)

理想情况下,你应该使用CUPS或IPP来做这样的事情。