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

📄 fopprintapplet.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        StringBuffer sb = new StringBuffer();        StringTokenizer st = new StringTokenizer(s, "&");        while (st.hasMoreTokens()) {            String pair = st.nextToken();            System.out.println("Next token: " + pair);            int pos = pair.indexOf('=');            if (pos == -1) {                throw new IllegalArgumentException();            }            String key = parseName(pair.substring(0, pos), sb);            String val = parseName(pair.substring(pos + 1, pair.length()), sb);            System.out.println("Key: " + key + " / Val: " + val);            ht.put(key, val);        }        return ht;    }    private static String toHex(byte[] buf) {        char[] cbf = new char[buf.length * 2];        for (int jj = 0, kk = 0; jj < buf.length; jj++) {            cbf[kk++] = "0123456789ABCDEF".charAt((buf[jj] >> 4) & 0x0F);            cbf[kk++] = "0123456789ABCDEF".charAt(buf[jj] & 0x0F);        }        return new String(cbf);    }    private static byte[] toByteArray(String hex) {        byte[] result = new byte[hex.length() / 2];        for (int jj = 0, kk = 0; jj < result.length; jj++) {            result[jj] = (byte) (                    ("0123456789ABCDEF".indexOf(hex.charAt(kk++)) << 4) +                            "0123456789ABCDEF".indexOf(hex.charAt(kk++)));        }        return result;    }    private static byte[] getBytes(Object obj) {        ByteArrayOutputStream bos = null;        ObjectOutputStream oos = null;        byte[] data = null;        try {            bos = new ByteArrayOutputStream();            oos = new ObjectOutputStream(bos);            oos.writeObject(obj);            data = bos.toByteArray();        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                if (oos != null) {                    oos.flush();                    oos.close();                }                if (bos != null) {                    bos.close();                }            } catch (IOException e) {                e.printStackTrace();            }        }        return data;    }    private static Object getObject(byte[] bytes) {        ByteArrayInputStream bis = null;        ObjectInputStream ois = null;        Object obj = null;        try {            bis = new ByteArrayInputStream(bytes);            ois = new ObjectInputStream(bis);            obj = ois.readObject();        } catch (ClassNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                if (ois != null) {                    ois.close();                }                if (bis != null) {                    bis.close();                }            } catch (IOException e) {                e.printStackTrace();            }        }        return obj;    }    // This is stolen from FOP PrintStarter    class PrintRenderer extends AWTRenderer {        public static final int EVEN_AND_ALL = 0;        public static final int EVEN = 1;        public static final int ODD = 2;        private int startNumber;        private int endNumber;        private int mode = EVEN_AND_ALL;        private int copies = 0;        private PrintSettings settings;        private PrintService service;        private String jobName;        PrintRenderer(String jobName, PrintSettings settings) {            super(null);            this.settings = settings;            this.jobName = jobName;            this.service = settings.getPrintService();            this.copies = settings.getCopies();            this.mode = settings.getMode();            this.startNumber = settings.getStartNumber();            this.endNumber = settings.getEndNumber();            this.setScaleFactor(1);        }        /*        PrintRenderer(PrintService service, String jobName) {            this(service, jobName, EVEN_AND_ALL, 0);        }        PrintRenderer(PrintService service, String jobName, int mode, int copies) {            super(null);            this.service = service;            this.jobName = jobName;            this.copies = copies;            this.mode = mode;            this.startNumber = 0 ;            this.endNumber = -1;            this.setScaleFactor(1);        }        */        public void stopRenderer(OutputStream outputStream) throws IOException {            super.stopRenderer(outputStream);            if (endNumber == -1) {                endNumber = getPageCount();            }            Vector numbers = getInvalidPageNumbers();            for (int i = numbers.size() - 1; i > -1; i--) {                removePage(Integer.parseInt((String) numbers.elementAt(i)));            }            // print job attribute            JobName printJobName = new JobName(jobName.substring(jobName.indexOf("#") + 1), Locale.getDefault());            PrintRequestAttributeSet aset = settings.getAttributeSet();            aset.add(printJobName);            if (copies > 0) {                aset.add(new Copies(copies));            }            if (service != null) {                log.info("Printing job [" + jobName + "] to printer - " + service.getName());                DocPrintJob job = service.createPrintJob();                job.addPrintJobListener(applet);                DocAttributeSet das = new HashDocAttributeSet();                Doc doc = new SimpleDoc(this, flavor, das);                try {                    int copiesToPrint = 1;                    if (!service.isAttributeCategorySupported(Copies.class)) {                        copiesToPrint = ((Copies) aset.get(Copies.class)).getValue();                        aset.add(new Copies(1));                    }                    getAppletContext().showStatus("Printing...");                    for (int i = 0; i < copiesToPrint; i++) {                        System.out.println("Printing copy [" + i+1 + " of " + copiesToPrint + "]");                        job.print(doc, aset);                    }                    /*                    try {                        setJobComplete(jobName, false);                    } catch (Exception e) {                        e.printStackTrace();                        throw new IOException(e.getMessage());                    }                    */                } catch (PrintException e) {                    log.error("Unable to print", e);                    throw new IOException("Unable to print: " + e.getClass().getName() + ": " + e.getMessage());                }            }        }        public void renderPage(Page page) {            pageWidth = (int)((float) page.getWidth() / 1000f);            pageHeight = (int)((float) page.getHeight() / 1000f);            super.renderPage(page);        }        private Vector getInvalidPageNumbers() {            Vector vec = new Vector();            int max = getPageCount();            boolean isValid;            for (int i = 0; i < max; i++) {                isValid = true;                if (i < startNumber || i > endNumber) {                    isValid = false;                } else if (mode != EVEN_AND_ALL) {                    if (mode == EVEN && ((i + 1) % 2 != 0)) {                        isValid = false;                    } else if (mode == ODD && ((i + 1) % 2 != 1)) {                        isValid = false;                    }                }                if (!isValid) {                    vec.add(i + "");                }            }            return vec;        }    }    class PrintSettings implements Serializable {        protected transient PrintService service;        protected PrintRequestAttributeSet aset;        protected String printerName;        protected int startNumber;        protected int endNumber;        protected int copies;        protected int mode;        public PrintSettings(PrintService service, PrintRequestAttributeSet aset, int start, int end, int copies, int mode) {            this.printerName = service.getName();            this.service = service;            this.aset = aset;            this.startNumber = start;            this.endNumber = end;            this.copies = copies;            this.mode = mode;        }        public PrintSettings(PrintService service, PrintRequestAttributeSet aset) {            this(service, aset, 0, -1, 0, 0);        }        public synchronized PrintService getPrintService() {            if (service == null) {                PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, new HashPrintRequestAttributeSet());                if (printService.length > 0) {                    for (int i = 0; i < printService.length; i++) {                        PrintService svc = printService[i];                        if (svc.getName().equals(printerName)) {                            service = svc;                        }                    }                }            }            return service;        }        public String getPrinterName() {            return printerName;        }        public PrintRequestAttributeSet getAttributeSet() {            return aset;        }        public int getStartNumber() {            return startNumber;        }        public int getEndNumber() {            return endNumber;        }        public int getCopies() {            return copies;        }        public int getMode() {            return mode;        }    }}

⌨️ 快捷键说明

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