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

标签 java networking printing

如何在 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/

相关文章:

networking - 使用 EKS 与 IP 白名单服务通信

java - RESTful webservice与spring mvc上传图片集成测试

java - 处理二维数组的首选方法是什么?

java - java中的双向客户端服务器通信

java - 按 JFileChooser 中的“保存”按钮会打开一个文件夹而不是保存文件

c++ - Client Server场景下复杂且相互关联的数据结构

docker - 为什么在使用 macvlan 时无法从外部计算机通过主机名 ping 容器?

javascript - 只打印一个 iFrame

c# - 进行打印预览时是否有限制?

vb.net - 选择 "No Printer"选项时的打印问题