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

📄 barcodeservlet.java

📁 著名IDAutomation公司的JAVA条码控件源码
💻 JAVA
字号:
package com.idautomation.barcode;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.awt.Graphics2D.*;
import java.awt.*;

import com.idautomation.barcode.encoder.GifEncoder;
import com.idautomation.barcode.linear.BarCode;

public class BarCodeServlet
    extends HttpServlet {
  /**
   * Handle the HTTP POST method by sending an e-mail
   */
  private boolean debug = false;
  public void init() throws ServletException {}

  // MODIFY THIS METHOD TO RETRIEVE DATA TO ENCODE, CREATE THE BARCODE AND SET THE PARAMETERS
  private BarCode getChart(HttpServletRequest request) {
    BarCode cb = new BarCode();
    if (request != null) {
      // Remark these parameters out if you do not need them. We also recommend fixing parameters so they
      // do not need to be defined in the barcode IMG string. For example, instead of
      // if (request.getParameter("BAR_HEIGHT")!=null) cb.barHeightCM=new Double(request.getParameter("BAR_HEIGHT")).doubleValue();
      // use
      // cb.barHeightCM=2;
      // if you always use a bar height of 2.
      String st = null;
      if (request.getParameter("CODE_TYPE") != null) {
        st = (request.getParameter("CODE_TYPE"));
        if (st.compareTo("CODE39") == 0) {
          cb.barType = 0;
        }
        if (st.compareTo("CODE39EXT") == 0) {
          cb.barType = 1;
        }
        if (st.compareTo("INTERLEAVED25") == 0) {
          cb.barType = 2;
        }
        if (st.compareTo("CODE11") == 0) {
          cb.barType = 3;
        }
        if (st.compareTo("CODABAR") == 0) {
          cb.barType = 4;
        }
        if (st.compareTo("MSI") == 0) {
          cb.barType = 5;
        }
        if (st.compareTo("UPCA") == 0) {
          cb.barType = 6;
        }
        if (st.compareTo("IND25") == 0) {
          cb.barType = 7;
        }
        if (st.compareTo("MAT25") == 0) {
          cb.barType = 8;
        }
        if (st.compareTo("CODE93") == 0) {
          cb.barType = 9;
        }
        if (st.compareTo("EAN13") == 0) {
          cb.barType = 10;
        }
        if (st.compareTo("EAN8") == 0) {
          cb.barType = 11;
        }
        if (st.compareTo("UPCE") == 0) {
          cb.barType = 12;
        }
        if (st.compareTo("CODE128") == 0) {
          cb.barType = 13;
        }
        if (st.compareTo("CODE93EXT") == 0) {
          cb.barType = 14;
        }
        if (st.compareTo("POSTNET") == 0) {
          cb.barType = 15;
        }
        if (st.compareTo("PLANET") == 0) {
          cb.barType = 16;
        }
        if (st.compareTo("UCC128") == 0) {
          cb.barType = 17;
        }
      }
      if (request.getParameter("ROTATE") != null) {
        cb.rotate = new Integer(request.getParameter("ROTATE")).intValue();
      }
      if (request.getParameter("BAR_HEIGHT") != null) {
        cb.barHeightCM = new Double(request.getParameter("BAR_HEIGHT")).
            doubleValue();
      }
      if (request.getParameter("X") != null) {
        cb.X = new Double(request.getParameter("X")).doubleValue();
      }
      if (request.getParameter("N") != null) {
        cb.N = new Double(request.getParameter("N")).doubleValue();
      }
      if (request.getParameter("LEFT_MARGIN") != null) {
        cb.leftMarginCM = new Double(request.getParameter("LEFT_MARGIN")).
            doubleValue();
      }
      if (request.getParameter("TOP_MARGIN") != null) {
        cb.topMarginCM = new Double(request.getParameter("TOP_MARGIN")).
            doubleValue();
      }
      if (request.getParameter("CHECK_CHAR") != null) {
        cb.checkCharacter = (request.getParameter("CHECK_CHAR").compareTo("Y") ==
                             0);
      }
      if (request.getParameter("CHECK_CHARINTEXT") != null) {
        cb.checkCharacterInText = (request.getParameter("CHECK_CHARINTEXT").
                                   compareTo("Y") == 0);
      }
      if (request.getParameter("ST") != null) {
        cb.showText = (request.getParameter("ST").compareTo("Y") == 0);
      }
      if (request.getParameter("CODE128_SET") != null) {
        cb.Code128Set = request.getParameter("CODE128_SET").charAt(0);
      }
      if (request.getParameter("UPCE_SYSTEM") != null) {
        cb.UPCESytem = request.getParameter("UPCE_SYSTEM").charAt(0);
      }
      if (request.getParameter("TEXT_FONT") != null) {
        cb.textFont = convertFont(request.getParameter("TEXT_FONT"));
      }
      if (request.getParameter("FONT_COLOR") != null) {
        cb.fontColor = convertColor(request.getParameter("FONT_COLOR"));
      }
      if (request.getParameter("BAR_COLOR") != null) {
        cb.barColor = convertColor(request.getParameter("BAR_COLOR"));
      }
      if (request.getParameter("BACK_COLOR") != null) {
        cb.backColor = convertColor(request.getParameter("BACK_COLOR"));
      }
      if (request.getParameter("BARCODE") != null) {
        cb.code = request.getParameter("BARCODE");
      } else {
        cb.code = "000000000000";
      }
    } else {
      cb.code = "No Data";
    }
    return cb;
  }

  public java.awt.Font convertFont(String f) {
    String[] items = convertList(f);
    if (items == null) {
      return null;
    }
    if (items.length < 3) {
      return null;
    }
    int s = java.awt.Font.PLAIN;
    if (items[1].compareTo("BOLD") == 0) {
      s = java.awt.Font.BOLD;
    }
    if (items[1].compareTo("ITALIC") == 0) {
      s = java.awt.Font.ITALIC;
    }
    try {
      return new java.awt.Font(items[0], s, new Integer(items[2]).intValue());
    } catch (Exception e) {
      return null;
    }
  }

  private String[] convertList(String items) {
    String[] itema = new String[500];
    int itemCount = 0;
    // count number of items
    int p = items.indexOf("|");
    while (p >= 0) {
      itema[itemCount++] = items.substring(0, p);
      items = items.substring(p + 1, items.length());
      p = items.indexOf("|");
    }
    if (items.compareTo("") != 0) {
      itema[itemCount++] = items;
    }
    if (itemCount == 0) {
      return null;
    }
    String[] result = new String[itemCount];
    for (int i = 0; i < itemCount; i++) {
      result[i] = itema[i];
    }
    return result;
  }

  public java.awt.Color convertColor(String c) {
    if (c.compareTo("NULL") == 0) {
      return null;
    }
    if (c.compareTo("RED") == 0) {
      return java.awt.Color.red;
    }
    if (c.compareTo("BLACK") == 0) {
      return java.awt.Color.black;
    }
    if (c.compareTo("BLUE") == 0) {
      return java.awt.Color.blue;
    }
    if (c.compareTo("CYAN") == 0) {
      return java.awt.Color.cyan;
    }
    if (c.compareTo("DARKGRAY") == 0) {
      return java.awt.Color.darkGray;
    }
    if (c.compareTo("GRAY") == 0) {
      return java.awt.Color.gray;
    }
    if (c.compareTo("GREEN") == 0) {
      return java.awt.Color.green;
    }
    if (c.compareTo("LIGHTGRAY") == 0) {
      return java.awt.Color.lightGray;
    }
    if (c.compareTo("MAGENTA") == 0) {
      return java.awt.Color.magenta;
    }
    if (c.compareTo("ORANGE") == 0) {
      return java.awt.Color.orange;
    }
    if (c.compareTo("PINK") == 0) {
      return java.awt.Color.pink;
    }
    if (c.compareTo("WHITE") == 0) {
      return java.awt.Color.white;
    }
    if (c.compareTo("YELLOW") == 0) {
      return java.awt.Color.yellow;
    }
    try {
      return java.awt.Color.decode(c);
    } catch (Exception e) {
      return java.awt.Color.black;
    }
  }

  // Handle the request
  // 1. create barcode
  // 2. draw barcode in a Buffered Image
  // 3. encode image as GIF or JPEG and send it to the browser
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws
      ServletException, IOException {
    ServletOutputStream outb;
    //default encoding type
    String encode = "jpeg";
    if (request != null) {
      if (request.getParameter("FORMAT") != null) {
        encode = request.getParameter("FORMAT").toLowerCase();
      }
      if (encode.compareTo("gif") != 0) {
        encode = "jpeg";
      }
    }
    response.setContentType("image/" + encode);
    outb = response.getOutputStream();
    // avoid caching in browser
    response.setHeader("Pragma", "no-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);
    try {
      // find sizes
      int w = 10;
      int h = 10;
      // get the BarCode
      BarCode cb = getChart(request);
      if ( (request != null) && (request.getParameter("WIDTH") != null) &&
          (request.getParameter("HEIGHT") != null)) {
        w = new Integer(request.getParameter("WIDTH")).intValue();
        h = new Integer(request.getParameter("HEIGHT")).intValue();
      } else {
        //a temp image must be created to find the preferred size
        cb.autoSize = true;
        cb.setSize(170, 90);
        java.awt.image.BufferedImage imageTemp = new java.awt.image.
            BufferedImage(cb.getSize().width, cb.getSize().height,
                          java.awt.image.BufferedImage.TYPE_BYTE_INDEXED);
        java.awt.Graphics imgTempGraphics = imageTemp.createGraphics();
        cb.paint(imgTempGraphics);
        cb.invalidate();
        w = cb.getSize().width;
        h = cb.getSize().height;
        imgTempGraphics.dispose();
      }
      java.awt.image.BufferedImage BarImage = new java.awt.image.BufferedImage(
          w, h, java.awt.image.BufferedImage.TYPE_INT_RGB);
      java.awt.Graphics2D BarGraphics = BarImage.createGraphics();
      if (debug) {
        System.out.println("Size: " + w + " " + h);
      }
      cb.setSize(w, h);
      cb.paint(BarGraphics);
      if (encode.compareToIgnoreCase("gif") == 0) {
        // encode buffered image to a gif
        GifEncoder encoder = new GifEncoder(BarImage, outb);
        encoder.encode();
      } else {
        // create JPEG image
        com.sun.image.codec.jpeg.JPEGImageEncoder encoder = com.sun.image.codec.
            jpeg.JPEGCodec.createJPEGEncoder(outb);
        //increase the JPEG quality to 100%
        com.sun.image.codec.jpeg.JPEGEncodeParam param = encoder.
            getDefaultJPEGEncodeParam(BarImage);
        param.setQuality(1.0F, true);
        encoder.setJPEGEncodeParam(param);
        encoder.encode(BarImage, param);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public void doPost(HttpServletRequest request,
                     HttpServletResponse response) throws ServletException {
    try {
      doGet(request, response);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

⌨️ 快捷键说明

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