取消
显示结果 
搜索替代 
您的意思是: 

最新主题

我有一个运行在linux上的java程序,通过读取PDF文件并发送到打印机的9100端口进行打印。 现状: PDF已经设定纸张大小为A6 打印机的纸盘1里放入A6纸,打印机纸盘1纸张尺寸为任意尺寸。 打印结果为:PDF内容在A6纸的下半部分,相当于A4纸的中央部分打印了PDF的内容。 如果: 将打印机纸盘1纸张尺寸设定为A6,则PDF内容可以完整打印到A6纸上。 想要: ... 查看更多...
我有一个运行在linux上的java程序,通过读取PDF文件并发送到打印机的9100端口进行打印。 现状: PDF已经设定纸张大小为A6 打印机的纸盘1里放入A6纸,打印机纸盘1纸张尺寸为任意尺寸。 打印结果为:PDF内容在A6纸的下半部分,相当于A4纸的中央部分打印了PDF的内容。 如果: 将打印机纸盘1纸张尺寸设定为A6,则PDF内容可以完整打印到A6纸上。 想要: 打印机纸盘1的尺寸设定为任意尺寸。打印A6 PDF时,可以正常打印在A6纸上。如果要修改java程序,请告知怎样修改,比如在发送PDF之前,向打印机发送什么样的指令或报文。前提条件是,打印机的设定不可以修改,只能修改java程序。   左边是java打印的效果,右边是windows直接打印的效果 左边是通过JAVA打印效果,右边是windows直接打印PDF的效果   下面是java代码 public static void main(String[] args) { try { Socket socket = new Socket("192.168.0.57", 9100); OutputStream out = socket.getOutputStream(); // 发送设置纸张类型为A6的PCL命令,设不设定效果一样 // String pclCommand = "\u001B&l27A"; // out.write(pclCommand.getBytes()); // 发送PDF数据 FileInputStream fis = new FileInputStream("D:/pdf/a6.pdf"); byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = fis.read(buffer)) != -1) { out.write(buffer, 0, bytesRead); } fis.close(); out.close(); socket.close(); } catch (Exception e) { e.printStackTrace(); } }
† 惠普支持社区是一个客户交流平台,便于客户找到有效的解决方法,快速解决问题,充分利用惠普产品。请在发帖之前,阅读社区的使用条款注册须知。