2014-10-28 102 views
0

我想開發一個獨立的應用程序與Java Swing的醫療商店。有一個強制性的要求,打印一個小尺寸(219毫米至140毫米),只需單擊一下,沒有打印對話框。間歇性地,他們需要從不同的打印機將報告送至完整的A4頁面。Java打印機api

是否可以在不使用打印機對話框的情況下使用Java SE更改Java應用程序中的打印機和紙張屬性?

回答

1

PrintService接口的javadoc的一個例子

DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT; 
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); 
aset.add(MediaSizeName.ISO_A4); 
PrintService[] pservices = 
       PrintServiceLookup.lookupPrintServices(flavor, aset); 
if (pservices.length > 0) { 
    DocPrintJob pj = pservices[0].createPrintJob(); 
    try { 
     FileInputStream fis = new FileInputStream("test.ps"); 
     Doc doc = new SimpleDoc(fis, flavor, null); 
     pj.print(doc, aset); 
    } catch (FileNotFoundException fe) { 
    } catch (PrintException e) { 
    } 
} 

你可以得到所有可用的PrintService並與所需的格式打印。