95992828九五至尊2

条形码的法则与转变总括java,Java使用barcode4j生成条形码

三月 25th, 2019  |  882828九五至尊手机版

atitit.条形码的原理与转移计算java Barcode4j barcode o5

一 、将要利用到的jar包导入项目(一 、commons-lang-2.3.jar   
贰 、barcode4j-light-2.0.jar)

 

2、新建类 BarcodeUtil

条形码类库使用报告Barcode4j, ZXing
1

叁 、代码部分

应用成果图片
1

package com.sale.util;

条形码标准code 128和code 39
1

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

39条形码与128条形码的差异2

import org.apache.commons.lang.StringUtils;
import org.krysalis.barcode4j.impl.code128.Code128Bean;
import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;
import org.krysalis.barcode4j.tools.UnitConv;

attilax标准条形码dpi 跟大小标准..
2

/**
 *
 * @author Saffi
 * @date 2017年10月6日
 *882828九五至尊手机版,/
public class BarcodeUtil {
    
    /**
     * 生成文件
     *
     * @param msg
     * @param path
     * @return
     */
    public  File generateFiles(String msg, String path) {
        File file = new File(path);
        try {
            generates(msg, new FileOutputStream(file));
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        }
        return file;
    }

Barcode4j的选拔流程
2

    /**
     * 生成字节
     *
     * @param msg
     * @return
     * @throws IOException
     */
    public  byte[] generates(String msg) throws IOException {
        ByteArrayOutputStream ous = new ByteArrayOutputStream();
        generates(msg, ous);
        ous.close();
        return ous.toByteArray();
    }

Barcode4j的定向attilax标准条形码的设置
3

    /**
     * 生成到流
     *
     * @param msg
     * @param ous
     */
    public static  void generates(String msg, OutputStream ous) {
        if (StringUtils.isEmpty(msg) || ous == null) {
            return;
        }
        // 条形码类型
         //Code39Bean bean = new Code39Bean();
         Code128Bean bean = new Code128Bean();
        // 精细度
        final int dpi = 150;
        // module宽度
        final double moduleWidth = UnitConv.in2mm(2.0f / dpi);

注重的代码如下
3

        // 配置对象
        bean.setModuleWidth(moduleWidth);
        bean.doQuietZone(false);

 

        String format = “image/png”;
        try {

 

            // 输出到流
            BitmapCanvasProvider canvas = new BitmapCanvasProvider(ous,
format, dpi, BufferedImage.TYPE_BYTE_BINARY,
                    false, 0);

条形码类库使用报告Barcode4j, ZXing

 

在线生成条形码

http://barcode.tec-it.com/barcode-generator.aspx

 

抑或barcode4j的成效好。。上边带编码字符。。Zxing的要团结添加了,麻烦的…..

zxing生成二维码比较好…不过barcode4j好像也能生成二维码了…

 

 

我 老哇的爪子 Attilax 艾龙,  EMAIL:14665一九八一9@qq.com

转发请阐明来源: http://blog.csdn.net/attilax

 

            // 生成条形码
            bean.generateBarcode(canvas, msg);

利用成果图片

 

 

 

            // 截至绘制
            canvas.finish();
            ous.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

条形码标准code 128和code 39

 

code 128和code 39都以条形码的一种编码格式(当然还有其它两种编码格式,那三种是最通用的

CODE128码是1985年引入的一种高密度条码,CODE128 码可代表从ASCII 0 到ASCII 127 共1三十个字符,故称128码。个中蕴蓄了数字、字母和标志字符。

而个应该使用128码,,它的亮点愈来愈多..

 

无论是是哪种码,条形码扫描仪都能科学识别,不用担心

 

}

39条形码与128条形码的分别

 

Code 128码与Code 39码有诸多的相近性,都常见接纳在同盟社内部管理、生产流程、物流控制系统方面。区别的在于Code 128比Code 39能显示越多的字符,单位长度里的编码密度更高。当单位长度里不可能容下Code 39编码或编码字符超出了Code 39的范围时,就可挑选Code 128来编码。所以Code 128比Code 39更具灵性。

干什么普遍应用CODE128码:
是因为CODE128码可代表较全面包车型地铁字符(数字、字母和标记),在同样长度的条形码中可容纳的字符长度较长(高密度),条码长度与字符串长度无强烈的敏感性,所以CODE128码是商店内部管理系统最为普遍运用的条形码码制。

 

肆 、调用接口

attilax标准条形码dpi 跟大小标准..

150dpi

247px × 157px

 

/**
     * 生成条形码
     * @author Saffi
     * @throws IOException
     */
        @RequestMapping(“testOrderBarcodes.action”)
        public @ResponseBody String
testOrderBarcodes(HttpServletResponse respon) throws IOException {
            String result=”error”;
            try {

 Barcode4j的施用流程

下载压缩包barcode4j-2.0-bin.zip

barcode4j-2.1.0-bin.zip\barcode4j-2.1.0\examples\embedding\*.java复制到目录..

萨姆pleBitmapBarcodeWithBean.java正是俄们要选用的class..

But那些class是39码的,不切合俄们的标准…要改变配置…要改变为128码的..

       //调用接口
                        BarcodeUtil util = new BarcodeUtil();

 Barcode4j的定向attilax标准条形码的设置

bean.setModuleWidth(UnitConv.in2mm(3f / dpi)); //makes the narrow bar 

//这么些ModuleWidth参数设置疏通港口的半空中。。太小太密。。暗中认可的太小了。

bean.doQuietZone(true); //两边空白区

 

bean.setQuietZone(2);

////bean.setHeight(15); 

 

       //条码内容
                        String msg = ‘Te123456’;
                  //路径
                        String path
=”C:/Users/Administrator/Desktop/barcode/barcode”+msg+”.png”;
                        util.generateFiles(msg, path);
    
                    result=”succ”;
            } catch (Exception e) {
                e.printStackTrace();
                respon.sendRedirect(“error.action”);
                log.error(“系统错误”, e.fillInStackTrace());
            }
            return result;
        }

重点的代码如下

public static void geneBarcode(String code, String outFile)

 {

try{

//Create the barcode bean

       // Code39Bean bean = new Code39Bean();

       Code128Bean    bean=new Code128Bean();

final int dpi = 150;

//Configure the barcode generator

        bean.setModuleWidth(UnitConv.in2mm(3f / dpi)); //makes the narrow bar 

   

//width exactly one pixel

     //   bean.setWideFactor(3);

bean.doQuietZone(true);

//Open output file

        

File outputFile = new File(outFile);

OutputStream out = new FileOutputStream(outputFile);

try {

    //Set up the canvas provider for monochrome JPEG output 

    BitmapCanvasProvider canvas = new BitmapCanvasProvider(

            out, “image/jpeg”, dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0);

    //Generate the barcode

  

bean.generateBarcode(canvas, code);

    //Signal end of generation

    canvas.finish();

} finally {

    out.close();

}

 } catch (Exception e) {

            e.printStackTrace();

        }

}

 

参考

 

Barcode4j使用办法_百度文库.htm

 

Your Comments

近期评论

    功能


    网站地图xml地图