JAVA 生成扫描条形码
声明:转载为个人学习收藏,如有侵权,请及时联系本人删除,转载地址:https://www.cnblogs.com/MariaWang/p/10837641.html
条形码是一种可视化、机器可读的数据,这些数据通常描述了携带该条码的物品的相关信息。条形码已经广泛被应用在商品流通,图书管理,邮政管理和银行系统等领域。在这篇文章中,将介绍如何生成和扫描一些常见的一维和二维条形码。
所需工具:
- Free Spire.Barcode for Java 1.3(免费版)
- Intellij IDEA
Jar包文件导入:
- 方式(一):首先,官网获取jar包
Step 1: 下载Jar包之后解压,进入“Project Structure” 界面。(以下是三种在IDEA中快速打开Project Structure界面的方式,可任意选择一种方式)
Step 2:按以下操作步骤进行导入。
① 选择“Modules”—“Dependencies”,添加外置jar包;② 进入"Attach File or Directories"界面选择jar文件路径,然后点击“OK”;③ 勾选jar路径选项,点击”OK”/”Apply”;④ 导入完成。如下图:
- 方式(二):使用Maven配置导包。可参考导入方法(http://www.e-iceblue.cn/licensing/install-spirepdf-for-java-from-maven-repository.htm)。
下面是免费版本支持的条形码类型列表:
P.S. 更多条形码类型,请参考使用Spire.Barcode for Java 商业版。
Barcode生成:
生成条形码涉及到两个重要的类,一个是BarcodeSettings,另一个是BarcodeCenerator。BarcodeSettings是用来定制条形码的特定类型,数据,大小,颜色等。BarcodeCenerator以BarcodeSettings为基础,用来创建图像数据。上表所支持的部分条形码的生成如下所示:
Codebar:
- public class CODABAR {
- public static void main(String[] args) throws Exception {
- //创建BarcodeSettings实例
- BarcodeSettings settings = new BarcodeSettings();
- //设置条形码数据
- settings.setData("2030405060");
- //设置符号属性
- settings.setType(BarCodeType.CODABAR);
- //设置底部显示文本
- settings.setShowTextOnBottom(true);
- //设置边框可见
- settings.hasBorder(true);
- //设置CodabarStartChar和CodabarStopChar
- settings.setCodabarStartChar(CodabarChar.B);
- settings.setCodabarStopChar(CodabarChar.D);
- //创建条形码生成器对象
- BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
- //从条形码生成器中获取图像
- BufferedImage bufferedImage = barCodeGenerator.generateImage();
- //保存图像
- ImageIO.write(bufferedImage,"png",new File("CODABAR.png"));
- }
- }
运行效果:
Code11:
- public class CODE_11 {
- public static void main(String[] args) throws IOException {
- //创建BarcodeSettings实例
- BarcodeSettings settings = new BarcodeSettings();
- //设置条形码数据
- settings.setData("12345-67890");
- //设置符号属性
- settings.setType(BarCodeType.CODE_11);
- //设置底部文本
- settings.setShowTextOnBottom(true);
- //设置边框可见
- settings.hasBorder(true);
- //创建条码生成器对象
- BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
- //从条码生成期中获取图像
- BufferedImage bufferedImage = barCodeGenerator.generateImage();
- //保存图像
- ImageIO.write(bufferedImage,"png",new File("CODE_11.png"));
- }
- }
运行效果:
Code 39:
- public static void main(String[] args) throws IOException {
- //创建BarcodeSettings
- BarcodeSettings settings = new BarcodeSettings();
- //设置条形码数据
- settings.setData("ABC 123456789");
- //设置符号属性
- settings.setType(BarCodeType.CODE_39);
- //在底部设置显示文本位置
- settings.setShowTextOnBottom(true);
- //设置边框可见
- settings.hasBorder(true);
- //创建条形码生成器实例
- BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
- //从条形码生成器中获取图像
- BufferedImage bufferedImage = barCodeGenerator.generateImage();
- //保存图像
- ImageIO.write(bufferedImage,"png",new File("CODE_39.png"));
- }
运行效果:
Code 128:
- public class CODE_128 {
- public static void main(String[] args) throws IOException {
- //创建BarcodeSettings
- BarcodeSettings settings = new BarcodeSettings();
- //设置条形码数据
- settings.setData("ABCD 12345 abcd");
- //设置符号属性
- settings.setType(BarCodeType.CODE_128);
- //在底部设置显示文本位置
- settings.setShowTextOnBottom(true);
- //设置边界可见
- settings.hasBorder(true);
- //创建条形码生成器实例
- BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
- //从条形码生成器获取图像
- BufferedImage bufferedImage = barCodeGenerator.generateImage();
- //保存图像
- ImageIO.write(bufferedImage,"png",new File("CODE_128.png"));
- }
运行效果
QR_Code:
- public class QR_CODE {
- public static void main(String[] args) throws IOException {
- //创建BarcodeSettings
- BarcodeSettings settings = new BarcodeSettings();
- //设置条形码数据
- settings.setData("ABC 123456789");
- //设置符号属性
- settings.setType(BarCodeType.QR_CODE);
- //在底部设置ShowText位置
- settings.setShowTextOnBottom(true);
- //设置边框是可见的
- settings.hasBorder(true);
- //创建BarCodeGenerator实例
- BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
- //从条形码生成器获取图像
- BufferedImage bufferedImage = barCodeGenerator.generateImage();
- //保存图像
- ImageIO.write(bufferedImage,"png",new File("QR_CODE.png"));
- }
- }
运行效果:
Barcode扫描:
下面我们将尝试将将几个条形码的合集放在一起扫描,使用BarcodeScanner 类的scan()方法读取多个条形码数据。图像和代码如下所示:
- public class Scan {
- public static void main(String[] args) throws Exception {
- //从要扫描的图像中获取信息
- String[] s= BarcodeScanner.scan("C:\\Users\\Administrator\\Desktop\\Barcode.png");
- for (int i=0;i< s.length ;i++){
- System.out.println(s[i]);
- }
- }
- }
运行效果:
JAVA 生成扫描条形码的更多相关文章
- JAVA生成扫描条形码
条形码是一种可视化.机器可读的数据,这些数据通常描述了携带该条码的物品的相关信息.条形码已经广泛被应用在商品流通,图书管理,邮政管理和银行系统等领域.在这篇文章中,将介绍如何生成和扫描一些常见的一维和 ...
- Java生成各种条形码
import java.awt.image.BufferedImage; import java.io.FileOutputStream; import org.jbarcode.JBarcode; ...
- Java生成读取条形码和二维码图片
原文:http://www.open-open.com/code/view/1453520722495 package zxing; import com.google.zxing.BarcodeFo ...
- java生成128A条形码
添加maven依赖 <dependency> <groupId>net.sf.barcode4j</groupId> <artifactId>barco ...
- Java生成扫描可以生成手机号名片的二维码
(1)需求:用户通过扫描pc端网站后台管理系统的二维码获取对接人的相关信息,主要是是手机号信息,达到点击可以直接打电话或者将对接人的信息直接保存到通讯录 注:源码来源:https://blog.csd ...
- JAVA生成条形码
1.下载生成条形码所需要的jar包barcode4j.jar: 2.java生成条形码代码 import java.awt.image.BufferedImage;import java.io.Fil ...
- Java 条形码生成(一维条形码)
utl:http://mianhuaman.iteye.com/blog/1013945 在这里给大家介绍一个java 生成条形码 jbarcode.jar 生成条形码 支持EAN13, EAN8, ...
- android 二维码生成+扫描
android 二维码生成+扫描 1.在Android应用当中,很多时候都要用到二维码扫描,来避免让用户手动输入的麻烦. Google官方自己推出了一个二维码开源项目:ZXing库. 2.这里简单介绍 ...
- 利用JAVA生成二维码
本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...
随机推荐
- Windows安装php Oracle扩展
前言 去IOE的浪潮下,很多大型公司古董级的系统还在使用IOE设备.新东家有些年头的系统都是使用Oracle数据库,为了省事,新架构下的业务直接通过编程语言API操作Oracle数据库,安装相关扩展对 ...
- [LeetCode]Valid Sudoku解题记录
这道题考查对二维数组的处理,哈希表. 1.最自然的方法就是分别看每一个数是否符合三个规则.所以就须要对应的数据结构来 记录这些信息,判定是否存在.显然最先想到用哈希表. 2.学会把问题抽象成一个个的子 ...
- java读取中文分词工具(一)
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...
- IOS_OC_Category
1.Category概述 那的Category的使用场景有那些呢: 1.类包括了非常多个方法实现,而这些方法须要不同团队的成员来实现 2.当你在使用基础类库中的类时,你不想继承这些类而仅仅想加入一些方 ...
- 多工程联编的Pods如何设置
多工程联编的Pods如何设置 (2014-07-17 13:57:10) 转载▼ 标签: 联编 多工程 分类: iOS开发 如今,CocoaPods使用越来越多,几乎每个项目都会使用到.有时候我们的项 ...
- ORA-24247: 网络訪问被訪问控制列表 (ACL) 拒绝
ORA-24247: 网络訪问被訪问控制列表 (ACL) 拒绝 注意:须要在system用户下使用命令 须要先使用 DBMS_NETWORK_ACL_ADMIN.CREATE_ACL 创建訪问控 ...
- 协同过滤算法中皮尔逊相关系数的计算 C++
template <class T1, class T2>double Pearson(std::vector<T1> &inst1, std::vector<T ...
- 比较两个Json对象是否相等
一个前端同事遇到的面试题,抽空写了写,也算是个积累 1.先准备三个工具方法,用于判断是否是对象类型,是否是数组,获取对象长度 function isObj(object) { return objec ...
- layui富文本编译器添加图片
1.创建富文本编辑器 <form class="layui-form" method="post" id="myForm" encty ...
- LMS、NLMS最优步长理论分析与Speex回声消除可能的改进想法
一.回声消除算法模型 先来分析下自适应回声消除的主要组成部分,大体上可以把回声消除模型分为两个部分 横向滤波器结构 滤波器系数自适应与步长控制 横向滤波器用脉冲响应w(n)[有的地方也称为回声路径]与 ...