java打印机获得当前打印机解决方案
阅读
- Java code
public class PrintImage { /** * 画图片的方法 * @param fileName[图片的路径] */ public void drawImage(String fileName){ try { DocFlavor dof = null; //根据用户选择不同的图片格式获得不同的打印设备 if(fileName.endsWith(".gif")) { //gif dof = DocFlavor.INPUT_STREAM.GIF; }else if(fileName.endsWith(".jpg")) { //jpg dof = DocFlavor.INPUT_STREAM.JPEG; }else if(fileName.endsWith(".png")) { //png dof = DocFlavor.INPUT_STREAM.PNG; } //字节流获取图片信息 FileInputStream fin = new FileInputStream(fileName); //获得打印属性 PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); //每一次默认打印一页 pras.add(new Copies(1)); //获得打印设备 ,字节流方式,图片格式 PrintService pss[] = PrintServiceLookup.lookupPrintServices(dof,pras); //如果没有获取打印机 if (pss.length == 0) { //终止程序 return; } //获取第一个打印机 PrintService ps = pss[0]; System.out.println("Printing image..........." + ps); //获得打印工作 DocPrintJob job = ps.createPrintJob(); //设置打印内容 Doc doc = new SimpleDoc(fin,dof, null); //出现设置对话框 PrintService service =ServiceUI .printDialog(null, 50, 50, pss, ps,dof, pras); if(service!=null) { //开始打印 job.print(doc, pras); fin.close(); } } catch (IOException ie) { //捕获io异常 ie.printStackTrace(); } catch (PrintException pe) { //捕获打印异常 pe.printStackTrace(); } } }
这段代码无论选择哪个打印机都会选择第一个打印机,怎么获得当前选择的打印机呢?
------解决方案--------------------
没做过打印相关的东西,帮顶一下
阅读
上一篇:关于flush的有关问题 下一篇:返回列表