1、下载生成条形码所需要的jar包barcode4j.jar;

2、java生成条形码代码

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

import javax.imageio.ImageIO;

import org.krysalis.barcode4j.HumanReadablePlacement;
import org.krysalis.barcode4j.impl.code128.Code128Bean;
import org.krysalis.barcode4j.impl.code39.Code39Bean;
import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;

/**
 * <p>Title:Barcode4j.java</p>
 * <p>Description: 生成条形码
 * barcode4j是使用datamatrix的二维码生成算法,为支持qr的算法
 * datamatrix是欧美的标准,qr为日本的标准,
 * barcode4j一般生成出来是长方形的
 * </p>
 * <p>Copyright: Copyright (c) 2013</p>
 * @version 1.0
 */
public class Barcode4j {

public static void generateCode128Barcode(File file, String code) {   
        Code128Bean bean = new Code128Bean();   
        final int dpi = 150;   
           
        //barcode   
        bean.setModuleWidth(0.21);   
        bean.setHeight(15);   
        bean.doQuietZone(true);   
        bean.setQuietZone(2);//两边空白区   
        //human-readable   
        bean.setFontName("Helvetica");   
        bean.setFontSize(3);   
        bean.setMsgPosition(HumanReadablePlacement.HRP_BOTTOM);   
           
        OutputStream out = null;   
      
        try {   
            out = new FileOutputStream(file);   
      
            BitmapCanvasProvider canvas = new BitmapCanvasProvider(out,   
                    "image/jpeg", dpi, BufferedImage.TYPE_BYTE_BINARY, true, 0);   
            bean.generateBarcode(canvas, code);   
            canvas.finish();   
        } catch (Exception e) {   
            e.printStackTrace();   
        } finally {   
            try {   
                if (out != null)   
                    out.close();   
            } catch (IOException e) {   
                e.printStackTrace();   
            }   
        }   
      
    }   
      
    public static void generateCode39Barcode(int mode, File file, String code) {   
        Code39Bean bean = new Code39Bean();   
        // Dot Per Inch每英寸所打印的点数或线数,用来表示打印机打印分辨率。   
        final int dpi = 150;   
        // bean.setModuleWidth(UnitConv.in2mm(1.0f / dpi));   
        bean.setModuleWidth(0.2);   
        bean.setHeight(15);   
      
        bean.setWideFactor(3);   
        bean.doQuietZone(true);   
      
        OutputStream out = null;   
      
        try {   
            out = new FileOutputStream(file);   
      
            if (mode == 0) {   
                BitmapCanvasProvider canvas = new BitmapCanvasProvider(out,   
                        "image/jpeg", dpi, BufferedImage.TYPE_BYTE_GRAY, false,   
                        0);   
      
                bean.generateBarcode(canvas, code);   
      
                canvas.finish();   
      
            } else {   
                BitmapCanvasProvider canvas = new BitmapCanvasProvider(dpi,   
                        BufferedImage.TYPE_BYTE_GRAY, true, 0);   
                bean.generateBarcode(canvas, code);   
                canvas.finish();   
                BufferedImage barcodeImage = canvas.getBufferedImage();   
      
                ImageIO.write(barcodeImage, "jpg", out);   
            }   
        } catch (Exception e) {   
            e.printStackTrace();   
        } finally {   
            try {   
                if (out != null)   
                    out.close();   
            } catch (IOException e) {   
                e.printStackTrace();   
            }   
        }   
    }
    
    
    public static void main(String[] args) {   
        String code = "ISN8859-52036";   
        generateCode39Barcode(0, new File("E:\\QRCodeTest\\barcode\\code39_0.jpg"), code);   
        generateCode39Barcode(1, new File("E:\\QRCodeTest\\barcode\\code39_1.jpg"), code);   
        generateCode128Barcode(new File("E:\\QRCodeTest\\barcode\\code128.jpg"), code);  
    }

}

JAVA生成条形码的更多相关文章

  1. java 生成条形码

    package com.sun.erwei; import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;impo ...

  2. java生成条形码工具类

    package com.runtime.extend.utils.CodeCreate;import java.awt.Color;import java.awt.Font;import java.a ...

  3. Java之生成条形码、PDF、HTML

    关于Java生成HTML,可参考我的这篇文章:FreeMarker之根据模型生成HTML代码 当然了,该篇文章也会给你很多启发,比如,根据html生成html,大家不要小看这个,著名的WordPres ...

  4. Java生成读取条形码和二维码图片

    原文:http://www.open-open.com/code/view/1453520722495 package zxing; import com.google.zxing.BarcodeFo ...

  5. JAVA生成扫描条形码

    条形码是一种可视化.机器可读的数据,这些数据通常描述了携带该条码的物品的相关信息.条形码已经广泛被应用在商品流通,图书管理,邮政管理和银行系统等领域.在这篇文章中,将介绍如何生成和扫描一些常见的一维和 ...

  6. JAVA 生成扫描条形码

    声明:转载为个人学习收藏,如有侵权,请及时联系本人删除,转载地址:https://www.cnblogs.com/MariaWang/p/10837641.html 条形码是一种可视化.机器可读的数据 ...

  7. java zxing 生成条形码和二维吗

    依赖 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</art ...

  8. java生成二维码的三个工具

    1.  使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode ...

  9. java生成二维码的几个方法

    1: 使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode/ ...

随机推荐

  1. js特效

    1.轮播换图 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  2. OpenMesh 删除网格顶点

    OpenMesh 提供了 delete_vertex() 函数来实现从网格中删除顶点,在删除掉顶点的同时,所有与该顶点相连的边也同时被删除. OpenMesh 官方文档 中给的顶点删除函数声明如下: ...

  3. [Unity3D插件]2dtoolkit系列二 动画精灵的创建以及背景图的无限滚动

    经过昨天2dtoolkit系列教程一的推出,感觉对新手还有有一定的启发作用,引导学习使用unity 2dToolKit插件的使用过程,今天继续系列二——动画精灵的创建,以及背景图的无限循环滚动,在群里 ...

  4. 注解:【基于外键的】Hibernate单向1->1关联

    Person与Address关联:单向1->1,[基于外键的] Person.java package org.crazyit.app.domain; import javax.persiste ...

  5. linux 用户之间的切换

    从root用户切换到普通用户fxm, 使用如下命令:su - fxm 从普通用户切换到root用户,使用如下命令:su - 或者 su, root可以省略不写.

  6. memset中的sizeof

    记录memset中的sizeof的用法, unsigned char *buff = (unsigned char*) malloc(128 * sizeof(char)); //错误的:memset ...

  7. ZEALER背后的乐视云视频

    ZEALER是我非常喜欢的一个测评网站,经常访问看看手机.电动牙刷及机械键盘的测试视频,非常欣赏王自如的数据化测评理念.敬畏之心,以及不祛痘的视频. 刚好最近对网络视频应用比较感兴趣,觉得ZEALER ...

  8. LeetCode——Single Number(找出数组中只出现一次的数)

    问题: Given an array of integers, every element appears twice except for one. Find that single one. No ...

  9. T-SQL 高级查询

    基本常用查询 --select select * from student; --all 查询所有 select all sex from student; --distinct 过滤重复 selec ...

  10. HTTP协议开发应用-HTTP&XML协议栈开发

    Netty HTTP+XML协议栈开发 由于HTTP协议的通用性,很多异构系统间的通信交互采用HTTP协议,通过HTTP协议承载业务数据进行消息交互,例如非常流行的HTTP+XML或者RESTful+ ...