




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 线上教学结业课件大纲
- 培训课后知识点回顾课件
- 2025年四川省遂宁市中考语文真题(附答案解析)
- 培训讲座销售墓地知识课件
- 2025年航空航天传感器设备采购、安装与检测服务协议
- 2025年度绿色建材环保型户外雨棚设计、制造及专业安装服务协议
- 2025年度政府机关IT系统安全加固与维护服务合同
- 2025年健身房装修工程后期保障与维护责任书
- 2025年智能制造业工伤赔偿补偿协议书范本
- 2025年智能房贷代理服务委托协议范本
- (完整版)钢结构厂房施工组织设计(含土建)
- 机关食堂食品安全风险防控工作指南
- T/CHTS 10155-2024公路多脉冲整流远程直流供电系统技术规范
- 利用机器学习技术开发社区老年人跌倒风险预测模型
- 酒店宠物协议书
- 聘请合唱团老师合同协议
- 2025年公共行政管理考试试卷及答案
- 非创伤性软组织疼痛急诊管理专家共识解读
- 小学生作业书写规范要求
- 电镀防火知识培训课件
- 电石炉巡检工课件
评论
0/150
提交评论