取消
显示结果 
搜索替代 
您的意思是: 
学生
学生
1 0 0 0
1个帖子(共 2 条)
173 次查看
标记帖子

打印机通过程序写PDF字节数组到HP LaserJet Pro 4004dn的9100端口,不能识别纸张大小,怎么样编程?

HP LaserJet Pro 4004dn
Linux

我有一个运行在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打印效果,右边是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();
        }
	}
1 条回复1
惠普支持工程师
惠普支持工程师
57,237 36,372 3,056 4,450
2个帖子(共 2 条)
标记帖子

打印机通过程序写PDF字节数组到HP LaserJet Pro 4004dn的9100端口,不能识别纸张大小,怎么样编程?

您好

非常抱歉,以上操作超出了我们对打印机的技术支持范畴。

给您带来不便,敬请谅解。


我是HP员工。
如果我的回复对您有帮助, 请点击按钮。如果我的回复帮助您解决了问题,别忘了点击,可以帮到其他遇到同样问题的用户。
这条回复对您有帮助吗? 没有
† 惠普支持社区是一个客户交流平台,便于客户找到有效的解决方法,快速解决问题,充分利用惠普产品。请在发帖之前,阅读社区的使用条款注册须知。