




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 定做柜子合同(标准版)
- 4.2.2消化和吸收说课稿-2024-2025学年人教版生物七年级下册
- 第十一课 我被误解时说课稿-2025-2026学年小学心理健康人教版五年级上册-人教版
- 14《动态效果的设置》说课稿、教材分析与教学反思2024年滇人版初中信息技术七年级下册
- 假山施工合同
- 高一生物教案高一生物植物的激素调节教学设计(2025-2026学年)
- 转正要不要签合同
- 门面租赁合同
- 第25课 控制传染病说课稿-2023-2024学年小学地方、校本课程浙教版人·自然·社会
- 第一节 土地资源说课稿-2025-2026学年初中地理人教版2024八年级上册-人教版2024
- 宅基地转让协议书
- 十年(2015-2024)高考真题数学分项汇编(全国)专题25 新定义综合(数列新定义、函数新定义、集合新定义及其他新定义)(教师卷)
- 飞机飞行控制课件
- NB-T+10072-2018抽水蓄能电站设计规范
- 医院护理培训课件:《PICC导管的维护及指导》
- 酒店数字化运营概论 课件 1.1 信息技术、数字技术与企业运营
- 美国史智慧树知到期末考试答案章节答案2024年东北师范大学
- 江苏医疗美容主诊医师
- 神华包头煤制烯烃升级示范项目环境报告
- FZ∕T 01085-2018 粘合衬剥离强力试验方法
- SL721-2015水利水电工程施工安全管理导则
评论
0/150
提交评论