Java打印-忽略媒体大小

Java打印-忽略媒体大小,java,printing,Java,Printing,我试图使用Java打印服务自动将打印作业发送到打印机,但这很快就会变成一场噩梦。关于手头的问题,下面是代码: DocAttributeSet docAset = new HashDocAttributeSet(); docAset.add(MediaSizeName.NA_LETTER); Doc myDoc = new SimpleDoc(book, psInFormat, docAset); Pr

我试图使用Java打印服务自动将打印作业发送到打印机,但这很快就会变成一场噩梦。关于手头的问题,下面是代码:

DocAttributeSet docAset = new HashDocAttributeSet();
                docAset.add(MediaSizeName.NA_LETTER);
                Doc myDoc = new SimpleDoc(book, psInFormat, docAset);
                PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
                aset.add(new JobName("Test Job Name", null));
                aset.add(MediaSizeName.NA_LETTER);
                aset.add(Sides.ONE_SIDED);
                aset.add(Fidelity.FIDELITY_TRUE);

//                new JobState()
                DocPrintJob job = services[8].createPrintJob();
                try {
                    job.print(myDoc, aset);
    //System.out.println(" Thread " + this.getId() + ": Envío de impresión OK");
                } catch (PrintException ex) {
                    Logger.getLogger(PrototypeMain2.class.getName()).log(Level.SEVERE, null, ex);
                }
此代码完全忽略介质大小,并打印到默认的A4大小纸张


非常感谢您提供的任何帮助。

似乎打印机正在根据我设置的首选项使用默认纸张,因此如果我将首选项设置为使用字母大小,它会要求使用字母大小的页面,默认情况下它将打印在A4大小的纸张上。

打印机是否真的有一个NA_信箱?其他应用程序是否正确打印到它?打印机没有NA_信箱,但当我从adobe发送打印作业,选择NA_LETTER的纸张类型时,它会要求我在手动纸盘中提供纸张。在本例中,它将作业的纸张类型显示为A4。您在任何时候都成功地使用了此属性吗?另一个有趣的事情是,当我使用PrinterJob而不是DocPrintJob时,它要求我提供纸张,但打印在纸张的错误一侧(作业是单面的,取决于打印在哪一侧)。关于这里可能发生的事情有什么想法吗?