2014-10-28 103 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并与所需的格式打印。