2011-07-25 117 views
0

我正在嘗試使用javax進行打印。儘管javax默認爲單面打印,但打印機每頁仍設置爲1頁,但一個簡單的打印作業總是以雙面打印。javax打印始終是雙面的

打印機是惠普2015DN這裏是我的代碼:

String filename = "test.txt"; 
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); 
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; 

PrintService printService[] = PrintServiceLookup.lookupPrintServices(
    flavor, pras); 

PrintService defaultService = PrintServiceLookup 
    .lookupDefaultPrintService(); 

PrintService service = ServiceUI.printDialog(null, 200, 200, 
    printService, defaultService, DocFlavor.INPUT_STREAM.AUTOSENSE, pras); 

if (service != null) { 
    DocPrintJob job = service.createPrintJob(); 
    FileInputStream fis = new FileInputStream(filename); 
    DocAttributeSet das = new HashDocAttributeSet(); 
    Doc doc = new SimpleDoc(fis, flavor, das); 
    pras.add(new Copies(1)); 
    job.print(doc, pras); 
    fis.close(); 
} 

我知道,打印機可以打印單面因爲記事本+ +是能夠做到這一點..

任何幫助,將不勝感激..謝謝..

+0

我建議檢查以下問題的更徹底的處理:[打印與屬性(紙盒控制,雙面等...)使用javax.print庫](http://stackoverflow.com/問題/ 14328012/printing-with-attributestray-control-duplex-etc-using-javax-print-library) – amaidment

回答

1

打印機ç在這種情況下,配置似乎是問題;無論Java API中的指令如何,都將打印機配置爲雙面打印。嘗試使用不同打印機的代碼有助於理解問題。

1

也許這將幫助:

pras.add(Sides.ONE_SIDED); 
+0

不幸的是,這似乎沒有幫助。如果在查找之前將其添加,則找不到打印機,如果在查找之後添加打印機,則作業仍會雙面打印。 – arin