JAVA生成条形码
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生成条形码的更多相关文章
- java 生成条形码
package com.sun.erwei; import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;impo ...
- java生成条形码工具类
package com.runtime.extend.utils.CodeCreate;import java.awt.Color;import java.awt.Font;import java.a ...
- Java之生成条形码、PDF、HTML
关于Java生成HTML,可参考我的这篇文章:FreeMarker之根据模型生成HTML代码 当然了,该篇文章也会给你很多启发,比如,根据html生成html,大家不要小看这个,著名的WordPres ...
- Java生成读取条形码和二维码图片
原文:http://www.open-open.com/code/view/1453520722495 package zxing; import com.google.zxing.BarcodeFo ...
- JAVA生成扫描条形码
条形码是一种可视化.机器可读的数据,这些数据通常描述了携带该条码的物品的相关信息.条形码已经广泛被应用在商品流通,图书管理,邮政管理和银行系统等领域.在这篇文章中,将介绍如何生成和扫描一些常见的一维和 ...
- JAVA 生成扫描条形码
声明:转载为个人学习收藏,如有侵权,请及时联系本人删除,转载地址:https://www.cnblogs.com/MariaWang/p/10837641.html 条形码是一种可视化.机器可读的数据 ...
- java zxing 生成条形码和二维吗
依赖 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</art ...
- java生成二维码的三个工具
1. 使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode ...
- java生成二维码的几个方法
1: 使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode/ ...
随机推荐
- go-martini 简单分析之二
martini.go 对路由采用正则表达式处理,最终转化成正则表达式. 添加route对应的调用栈 按照生成,验证,添加的步骤 route := newRoute(method, pattern, h ...
- linux脚本编程技术
linux脚本编程技术 一.什么是脚本 脚本是一个包含一系列命令序列的可执行(777)文本文件.当运行这个脚本文件时,文件中包含的命令序列将得到自动执行. 二.脚本编程 #!/bin/sh 首行固定格 ...
- C/C++面试题
第一部分:基本概念及其它问答题 1. 关键字static的作用是什么? 这个简单的问题很少有人能回答完全.在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量 ...
- jackson对多态or多子类序列化的处理配置
[TOC] Jackson Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 多态类型的处理 jackson允许配置多态类型处理, ...
- jBox使用记录
1.不显示底部按钮,可以将buttons设置为buttons:{} 例:$.jBox.open("iframe:http://www.baidu.com", "百度一下& ...
- Hibernate 和 快照
Hibernate我们已经学了四天,该讲的知识我们已经讲完,明天放假,后天练习一天就要结束hibernate的学习,有点不舍的,想来hibernate也不是传说中的那么难,在次将hibernate中三 ...
- 理解flex_对齐
容器属性: 左右对齐方式:justify-content:flex-start/flex-end/center/space-between/space-around; 上下对齐方式:align-ite ...
- [转载]C/C++可变参数之va_start和va_end使用详解
本文主要介绍va_start和va_end的使用及原理. 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解. 介绍这两 ...
- Liferay 6.2 改造系列之十一:默认关闭CDN动态资源
在行业客户中,一般无法提供CDN服务,因此默认关闭CDN动态资源功能: 在/portal-master/portal-impl/src/portal.properties文件中,有如下配置: # # ...
- mysql LAST_INSERT_ID 使用与注意事项
在使用MySQL时,若表中含自增字段(auto_increment类型),则向表中insert一条记录后,可以调用last_insert_id()来获得最近insert的那行记录的自增字段值 $mdb ...