⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deviceticket.java

📁 是一个专门设计用于触摸屏的POS(point of sales)应用软件
💻 JAVA
字号:
//    Tina POS is a point of sales application designed for touch screens.//    Copyright (C) 2005 Adrian Romero Corchado.//    http://sourceforge.net/projects/tinapos////    This program is free software; you can redistribute it and/or modify//    it under the terms of the GNU General Public License as published by//    the Free Software Foundation; either version 2 of the License, or//    (at your option) any later version.////    This program is distributed in the hope that it will be useful,//    but WITHOUT ANY WARRANTY; without even the implied warranty of//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the//    GNU General Public License for more details.////    You should have received a copy of the GNU General Public License//    along with this program; if not, write to the Free Software//    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USApackage net.adrianromero.tpv.printer;import java.util.*;import javax.swing.JComponent;import net.adrianromero.tpv.forms.AppViewConnection;import net.adrianromero.tpv.printer.escpos.*;import net.adrianromero.tpv.printer.javapos.DeviceDisplayJavaPOS;import net.adrianromero.tpv.printer.javapos.DeviceFiscalPrinterJavaPOS;import net.adrianromero.tpv.printer.javapos.DevicePrinterJavaPOS;import net.adrianromero.tpv.printer.printer.*;import net.adrianromero.tpv.printer.screen.*;import net.adrianromero.tpv.util.StringParser;public class DeviceTicket {        private DeviceFiscalPrinter m_deviceFiscal;        private DeviceDisplay m_devicedisplay;        private DevicePrinter m_nullprinter;    private Map<String, DevicePrinter> m_deviceprinters;    private List<DevicePrinter> m_deviceprinterslist;        /** Creates a new instance of DeviceTicket */    public DeviceTicket() {        // Una impresora solo de pantalla.                m_deviceFiscal = new DeviceFiscalPrinterNull();                m_devicedisplay = new DeviceDisplayNull();                m_nullprinter = new DevicePrinterNull();        m_deviceprinters = new HashMap<String, DevicePrinter>();        m_deviceprinterslist = new ArrayList<DevicePrinter>();                DevicePrinter p = new DevicePrinterPanel();        m_deviceprinters.put("1", p);         m_deviceprinterslist.add(p);            }        public DeviceTicket(AppViewConnection app){                PrinterWritterPool pws = new PrinterWritterPool();                // La impresora fiscal        StringParser sf = new StringParser(app.getProperty("machine.fiscalprinter"));        String sFiscalType = sf.nextToken(':');        String sFiscalParam1 = sf.nextToken(',');        String sFiscalParam2 = sf.nextToken(',');                try {            if ("javapos".equals(sFiscalType)) {                m_deviceFiscal = new DeviceFiscalPrinterJavaPOS(sFiscalParam1);            } else {                m_deviceFiscal = new DeviceFiscalPrinterNull();            }        } catch (TicketPrinterException e){            m_deviceFiscal = new DeviceFiscalPrinterNull(e.getMessage());        }                        // El visor        StringParser sd = new StringParser(app.getProperty("machine.display"));        String sDisplayType = sd.nextToken(':');        String sDisplayParam1 = sd.nextToken(',');        String sDisplayParam2 = sd.nextToken(',');                // compatibilidad hacia atras.        if ("serial".equals(sDisplayType) || "rxtx".equals(sDisplayType) || "file".equals(sDisplayType)) {            sDisplayParam2 = sDisplayParam1;            sDisplayParam1 = sDisplayType;            sDisplayType = "epson";        }                    try {            if ("screen".equals(sDisplayType)) {                m_devicedisplay = new DeviceDisplayPanel();            } else if ("window".equals(sDisplayType)) {                m_devicedisplay = new DeviceDisplayWindow();            } else if ("epson".equals(sDisplayType)) {                m_devicedisplay = new DeviceDisplayESCPOS(pws.getPrinterWritter(sDisplayParam1, sDisplayParam2), new UnicodeTranslatorInt());            } else if ("ld200".equals(sDisplayType)) {                m_devicedisplay = new DeviceDisplayESCPOS(pws.getPrinterWritter(sDisplayParam1, sDisplayParam2), new UnicodeTranslatorEur());            } else if ("javapos".equals(sDisplayType)) {                m_devicedisplay = new DeviceDisplayJavaPOS(sDisplayParam1);            } else {                m_devicedisplay = new DeviceDisplayNull();            }        } catch (TicketPrinterException e){            m_devicedisplay = new DeviceDisplayNull(e.getMessage());        }                m_nullprinter = new DevicePrinterNull();        m_deviceprinters = new HashMap<String, DevicePrinter>();        m_deviceprinterslist = new ArrayList<DevicePrinter>();                // Empezamos a iterar por las impresoras...        int iPrinterIndex = 1;        String sPrinterIndex = Integer.toString(iPrinterIndex);        String sprinter = app.getProperty("machine.printer");//        if (sprinter == null || "".equals(sprinter)) {//            sprinter = app.getProperty("machine.printer." + sPrinterIndex);//        }                while (sprinter != null && !"".equals(sprinter)) {                        StringParser sp = new StringParser(sprinter);            String sPrinterType = sp.nextToken(':');            String sPrinterParam1 = sp.nextToken(',');            String sPrinterParam2 = sp.nextToken(',');                        // compatibilidad hacia atras.            if ("serial".equals(sPrinterType) || "rxtx".equals(sPrinterType) || "file".equals(sPrinterType)) {                sPrinterParam2 = sPrinterParam1;                sPrinterParam1 = sPrinterType;                sPrinterType = "epson";            }                                 try {                if ("screen".equals(sPrinterType)) {                    addPrinter(sPrinterIndex, new DevicePrinterPanel());                } else if ("printer".equals(sPrinterType)) {                    addPrinter(sPrinterIndex, new DevicePrinterPrinter());                } else if ("epson".equals(sPrinterType)) {                    addPrinter(sPrinterIndex, new DevicePrinterESCPOS(pws.getPrinterWritter(sPrinterParam1, sPrinterParam2), new CodesEpson(), new UnicodeTranslatorInt()));                                } else if ("tmu220".equals(sPrinterType)) {                    addPrinter(sPrinterIndex, new DevicePrinterESCPOS(pws.getPrinterWritter(sPrinterParam1, sPrinterParam2), new CodesTMU220(), new UnicodeTranslatorInt()));                                } else if ("star".equals(sPrinterType)) {                    addPrinter(sPrinterIndex, new DevicePrinterESCPOS(pws.getPrinterWritter(sPrinterParam1, sPrinterParam2), new CodesStar(), new UnicodeTranslatorInt()));                } else if ("ithaca".equals(sPrinterType)) {                    addPrinter(sPrinterIndex, new DevicePrinterESCPOS(pws.getPrinterWritter(sPrinterParam1, sPrinterParam2), new CodesIthaca(), new UnicodeTranslatorInt()));                } else if ("javapos".equals(sDisplayType)) {                    addPrinter(sPrinterIndex, new DevicePrinterJavaPOS(sPrinterParam1, sPrinterParam2));                }            } catch (TicketPrinterException e){                // m_deviceprinters.add(new DevicePrinterNull(e.getMessage()));            }                        // siguiente impresora...            iPrinterIndex++;            sPrinterIndex = Integer.toString(iPrinterIndex);            sprinter = app.getProperty("machine.printer." + sPrinterIndex);        }    }        private void addPrinter(String sPrinterIndex, DevicePrinter p) {        m_deviceprinters.put(sPrinterIndex, p);        m_deviceprinterslist.add(p);    }    private static class PrinterWritterPool {                private Map<String, PrinterWritter> m_apool = new HashMap<String, PrinterWritter>();                public PrinterWritter getPrinterWritter(String con, String port) throws TicketPrinterException {                        String skey = con + "-->" + port;            PrinterWritter pw = (PrinterWritter) m_apool.get(skey);            if (pw == null) {                 if ("serial".equals(con)) {                    pw = new PrinterWritterComm(port);                    m_apool.put(skey, pw);                } else if ("rxtx".equals(con)) {                    pw = new PrinterWritterRXTX(port);                    m_apool.put(skey, pw);                } else if ("file".equals(con)) {                    pw = new PrinterWritterFile(port);                    m_apool.put(skey, pw);                } else {                    throw new TicketPrinterException();                }            }                       return pw;        }//        public void reset() {//            Collection<PrinterWritter> c = m_apool.values();//            Iterator<PrinterWritter> i = c.iterator();//            while (i.hasNext()) {//                i.next().close();//            }//        }    }        // Impresora fiscal    public DeviceFiscalPrinter getFiscalPrinter() {        return m_deviceFiscal;    }        // INTERFAZ DESCRIPCION    public String getDisplayName() {        return m_devicedisplay.getDisplayName();    }    public String getDisplayDescription() {        return m_devicedisplay.getDisplayDescription();    }    public JComponent getDisplayComponent() {        return m_devicedisplay.getDisplayComponent();    }        // INTERFAZ VISOR    public void writeVisor(String sLine1, String sLine2) {        m_devicedisplay.writeVisor(sLine1, sLine2);    }    public void clearVisor() {        m_devicedisplay.clearVisor();    }    public void writeTimeVisor(String sLine1) {        m_devicedisplay.writeTimeVisor(sLine1);    }        // Impresoras    public DevicePrinter getDevicePrinter(String key) {        DevicePrinter printer = (DevicePrinter) m_deviceprinters.get(key);        return printer == null ? m_nullprinter : printer;    }    public List getDevicePrinterAll() {        return m_deviceprinterslist;    }        // Utilidades    public static String getWhiteString(int iSize, char cWhiteChar){                char[] cFill = new char[iSize];        for (int i = 0; i < iSize; i++) {            cFill[i] = cWhiteChar;        }        return new String(cFill);    }        public static String getWhiteString(int iSize) {                return getWhiteString(iSize, ' ');    }        public static String alignBarCode(String sLine, int iSize){                if (sLine.length() > iSize) {            return sLine.substring(sLine.length() - iSize);        } else {            return getWhiteString(iSize - sLine.length(), '0') + sLine;        }    }        public static String alignLeft(String sLine, int iSize){                if (sLine.length() > iSize) {            return sLine.substring(0, iSize);        } else {            return sLine + getWhiteString(iSize - sLine.length());        }    }        public static String alignRight(String sLine, int iSize){                if (sLine.length() > iSize) {            return sLine.substring(sLine.length() - iSize);        } else {            return getWhiteString(iSize - sLine.length()) + sLine;        }    }        public static String alignCenter(String sLine, int iSize){                if (sLine.length() > iSize) {            return alignRight(sLine.substring(0, (sLine.length() + iSize) / 2), iSize);        } else {            return alignRight(sLine + getWhiteString((iSize - sLine.length()) / 2) , iSize);        }    }        public static String alignCenter(String sLine){        return alignCenter(sLine,  42);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -