如何在java中的未映射的网络打印机上打印 PDF ?
给出的打印机名称 LIKE(\\ PSCPARKP01 \ CP_P1_OKI20_4)
答案 0 :(得分:1)
信不信由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来执行此类操作。