2013-01-10 35 views
2

我試圖使用Java Print Services將打印作業自動發送到打印機,但它很快變成了一場噩夢。即將於手頭的問題,這裏是代碼:使用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尺寸的紙張。

這裏的任何幫助都非常感謝。

+0

打印機實際上是否有* NA_LETTER-盒?其他應用程序是否正確地打印到它? – Fildor

+0

打印機沒有NA_LETTER框,但是當我發送打印作業時,選擇紙張類型爲來自adobe的NA_LETTER,它向我要求手動紙盒中的紙張。在這種情況下,它將作業的紙張類型顯示爲A4。 –

+0

您是否成功隨時使用此屬性? –

回答

0

似乎打印機正在根據我設置的首選項採用默認紙張,所以如果我將首選項設置爲使用Letter尺寸,它會要求打印Letter尺寸頁面,默認情況下它將打印在A4尺寸的紙張上。