我正在尝试使用Java Print Services自动将打印作业发送到打印机,但是它很快变成了噩梦。谈到手头的问题,下面是代码:

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尺寸纸张。

非常感谢您的帮助。

最佳答案

似乎打印机是根据我设置的首选项来获取默认纸张的,因此,如果我将首选项设置为使用Letter尺寸,它将要求使用Letter尺寸的页面,默认情况下它将在A4尺寸的纸张上打印。

08-26 06:58