如何在 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 box,那就完全不同了,需要安装到打印机等等,这是一个不同的问题。
- IOUtils 是 Apache 公共(public)库,您需要在构建路径中使用该 jar。
- 这实际上并不调用打印作业,它只是将文档复制到您的打印队列文件夹中,因此您无法控制打印属性(如页面范围、份数)打印等)
理想情况下,您应该使用 CUPS 或 IPP 来执行此类操作。
关于java - 如何在 java 中的未映射网络打印机上打印 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6441063/