1 14 package org.compiere.print; 15 16 import javax.swing.*; 17 import java.awt.*; 18 import java.awt.event.*; 19 import java.awt.print.*; 20 import javax.print.*; 21 22 import org.compiere.swing.*; 23 import org.compiere.util.*; 24 25 31 public class CPrinter extends CComboBox implements ActionListener 32 { 33 36 public CPrinter() 37 { 38 super(getPrinterNames()); 39 setValue(Ini.getProperty(Ini.P_PRINTER)); 41 this.addActionListener(this); 42 } 44 48 public void actionPerformed (ActionEvent e) 49 { 50 51 } 53 57 public PrintService getPrintService() 58 { 59 String currentService = (String )getSelectedItem(); 60 for (int i = 0; i < s_services.length; i++) 61 { 62 if (s_services[i].getName().equals(currentService)) 63 return s_services[i]; 64 } 65 return PrintServiceLookup.lookupDefaultPrintService(); 66 } 68 69 70 71 72 private static PrintService[] s_services = PrintServiceLookup.lookupPrintServices(null,null); 74 75 79 public static String [] getPrinterNames() 80 { 81 String [] retValue = new String [s_services.length]; 82 for (int i = 0; i < s_services.length; i++) 83 retValue[i] = s_services[i].getName(); 84 return retValue; 85 } 87 88 89 93 public static PrinterJob getPrinterJob() 94 { 95 return getPrinterJob(Ini.getProperty(Ini.P_PRINTER)); 96 } 98 103 public static PrinterJob getPrinterJob (String printerName) 104 { 105 PrinterJob pj = PrinterJob.getPrinterJob(); 106 PrintService ps = null; 107 108 if (printerName == null || printerName.length() == 0) 110 printerName = Ini.getProperty(Ini.P_PRINTER); 111 if (printerName != null && printerName.length() != 0) 112 { 113 for (int i = 0; i < s_services.length; i++) 115 { 116 String serviceName = s_services[i].getName(); 117 if (printerName.equals(serviceName)) 118 { 119 ps = s_services[i]; 120 break; 122 } 123 } 125 } 127 try 128 { 129 if (ps != null) 130 pj.setPrintService(ps); 131 } 132 catch (Exception e) 133 { 134 System.err.println("CPrinter.getPrinterJob - " + e.toString()); 135 } 136 String serviceName = pj.getPrintService().getName(); 138 if (printerName != null && !printerName.equals(serviceName)) 139 System.err.println("CPrinter.getPrinterJob - Not found: " + printerName + " - Used: " + serviceName); 140 return pj; 141 } 143 144 } | Popular Tags |