我正在尝试使用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尺寸的纸张上打印。