已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
barcode使用方法JAR包:barcode4J.jar avalon-framework-4.2.0.jarWeb.xml添加上:BarcodeServletcom.telehot.jdt2.web.servlet.BarcodeServletBarcodeServlet/barcode创建一个BarcodeServlet,源码如下:package com.telehot.jdt2.web.servlet;import java.io.ByteArrayOutputStream;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.apache.avalon.framework.configuration.Configuration;import org.apache.avalon.framework.configuration.DefaultConfiguration;import org.apache.avalon.framework.logger.ConsoleLogger;import org.apache.avalon.framework.logger.Logger;import org.krysalis.barcode4j.BarcodeGenerator;import org.krysalis.barcode4j.BarcodeUtil;import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;import org.krysalis.barcode4j.output.eps.EPSCanvasProvider;import org.krysalis.barcode4j.output.svg.SVGCanvasProvider;import org.krysalis.barcode4j.tools.MimeTypes;import org.w3c.dom.DocumentFragment;public class BarcodeServlet extends HttpServlet private static final long serialVersionUID = -1612710758060435089L; public static final String BARCODE_MSG = msg; public static final String BARCODE_TYPE = type; public static final String BARCODE_HEIGHT = height; public static final String BARCODE_MODULE_WIDTH = mw; public static final String BARCODE_WIDE_FACTOR = wf; public static final String BARCODE_QUIET_ZONE = qz; public static final String BARCODE_HUMAN_READABLE_POS = hrp; public static final String BARCODE_FORMAT = fmt; public static final String BARCODE_IMAGE_RESOLUTION = res; public static final String BARCODE_IMAGE_GRAYSCALE = gray; public static final String BARCODE_HUMAN_READABLE_SIZE = hrsize; public static final String BARCODE_HUMAN_READABLE_FONT = hrfont; public static final String BARCODE_HUMAN_READABLE_PATTERN = hrpattern; private transient Logger log = new ConsoleLogger(1); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException try String format = determineFormat(request); int orientation = 0; Configuration cfg = buildCfg(request); String msg = request.getParameter(msg); if (msg = null) msg = 0123456789; BarcodeUtil util = BarcodeUtil.getInstance(); BarcodeGenerator gen = util.createBarcodeGenerator(cfg); ByteArrayOutputStream bout = new ByteArrayOutputStream(4096); try if (format.equals(image/svg+xml) SVGCanvasProvider svg = new SVGCanvasProvider(false, orientation); gen.generateBarcode(svg, msg); DocumentFragment frag = svg.getDOMFragment(); TransformerFactory factory = TransformerFactory.newInstance(); Transformer trans = factory.newTransformer(); Source src = new DOMSource(frag); Result res = new StreamResult(bout); trans.transform(src, res); else if (format.equals(image/x-eps) EPSCanvasProvider eps = new EPSCanvasProvider(bout, orientation); gen.generateBarcode(eps, msg); eps.finish(); else String resText = request.getParameter(res); int resolution = 300; if (resText != null) resolution = Integer.parseInt(resText); if (resolution 2400) throw new IllegalArgumentException(Resolutions above 2400dpi are not allowed); if (resolution 10) throw new IllegalArgumentException(Minimum resolution must be 10dpi); String gray = request.getParameter(gray); BitmapCanvasProvider bitmap = true.equalsIgnoreCase(gray) ? new BitmapCanvasProvider(bout, format, resolution, 10, true, orientation) : new BitmapCanvasProvider(bout, format, resolution, 12, false, orientation); gen.generateBarcode(bitmap, msg); bitmap.finish(); finally bout.close(); response.setContentType(format); response.setContentLength(bout.size(); response.getOutputStream().write(bout.toByteArray(); response.getOutputStream().flush(); catch (Exception e) this.log.error(Error while generating barcode, e); throw new ServletException(e); catch (Throwable t) this.log.error(Error while generating barcode, t); throw new ServletException(t); protected String determineFormat(HttpServletRequest request) String format = request.getParameter(fmt); format = MimeTypes.expandFormat(format); if (format = null) format = image/svg+xml; return format; protected Configuration buildCfg(HttpServletRequest request) DefaultConfiguration cfg = new DefaultConfiguration(barcode); String type = request.getParameter(type); if (type = null) type = code128; DefaultConfiguration child = new DefaultConfiguration(type); cfg.addChild(child); String height = request.getParameter(height); if (height != null) DefaultConfiguration attr = new DefaultConfiguration(height); attr.setValue(height); child.addChild(attr); String moduleWidth = request.getParameter(mw); if (moduleWidth != null) DefaultConfiguration attr = new DefaultConfiguration(module-width); attr.setValue(moduleWidth); child.addChild(attr); String wideFactor = request.getParameter(wf); if (wideFactor != null) DefaultConfiguration attr = new DefaultConfiguration(wide-factor); attr.setValue(wideFactor); child.addChild(attr); String quietZone = request.getParameter(qz); if (quietZone != null) DefaultConfiguration attr = new DefaultConfiguration(quiet-zone); if (quietZone.startsWith(disable) attr.setAttribute(enabled, false); else attr.setValue(quietZone); child.addChild(attr); String humanReadablePosition = request.getParameter(hrp); String pattern = request.getParameter(hrpattern); String humanReadableSize = request.getParameter(hrsize); String humanReadableFont = request.getParameter(hrfont); if (humanReadablePosition != null) | (pattern != null) | (humanReadableSize != null) | (humanReadableFont != null) DefaultConfiguration attr = new DefaultConfiguration(human-readable); if (pattern != null) DefaultConfiguration subAttr = new Defa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 泰隆银行2026校园招聘备考题库及参考答案详解1套
- 2025和田县公安局招聘编制外警务辅助人员备考题库(84人)完整答案详解
- 2025年兴业银行长沙分行社会招聘备考题库及答案详解(易错题)
- 2025浙江嘉兴海宁市硖美文旅发展有限公司招聘对象笔试历年参考题库附带答案详解
- 2025河南溆浦鹏程环保有限公司招聘2人笔试历年参考题库附带答案详解
- 土地稻田流转协议书
- 2025四川长虹民生物流股份有限公司招聘财务主办岗位拟录用人员笔试历年参考题库附带答案详解
- 2025云南航空产业投资集团三季度招聘(云南航信空港网络有限公司岗位)拟录用人员笔试历年参考题库附带答案详解
- 2026河南农商银行系统校园招聘1736人备考题库及答案详解参考
- 2026广东省选调生招录1715人备考题库含答案详解(夺分金卷)
- 2025年陕西省建筑施工企业安全生产管理人员考试(专职安全生产管理人员·C1类)历年参考题库含答案详解(5套)
- 微电网技术及应用
- 大气污染防治法培训课件
- 今文《尚书》:公文范式的溯源与启示
- 高中生常规管理课件
- 溜井放矿管理办法
- 四川辅警考试试题及答案
- 计量检定校准技术服务合同协议书
- pmc人员管理制度
- 分批次供货方案(3篇)
- 2015海湾消防GST-QKP04、GST-QKP04-2 气体灭火控制器安装使用说明书
评论
0/150
提交评论