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

时间:2011-06-22 13:56:06

标签: java networking printing

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

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

1 个答案:

答案 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来执行此类操作。