绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Java 创建/识别条形码、二维码
2019-09-16 03:27:31

条形码(Barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常用于标示物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等信息,广泛应用于各个领域。常见的包括一维条码(条码)、二维条码(二维码)、彩色条码,在具体码制上可分为多种不同类型的条码,如UPC(统一产品代码,只能以数字表示)、Code 3(能表示字母、数字和其它一些符号共43个字符)、Code 128(表示高密度数据,字符串可变长,符号内含校验码)、Codabar(库德巴码,以起始/终止符a,b,c d四个字符、数字0 - 9,字符$+- 组成,可变长度,没有校验位)、QR(呈正方形,常见以黑白两色组成。) PDF417(多行组成的条形码,可存储大量数据)、复合条码(新出现的码制类型,由两个很靠近的条码符号组成,包含互相关联的数据)等。以下内容,将介绍通过Java程序来创建、读取条码的方法。示例要点包括:


  • 创建一维条形码(Barcode
  • 创建二维码(QR Code
  • 读取/识别条码


 

使用工具:Free Spire.Barcode for Java (免费版)

这里使用的工具,支持多种条码类型,包括条形码,二维码和邮政码,多达38种条码类型,如CODE 25CODABARCODE 11INTERLEAVED 25CODE 39CODE 39 EXTENDEDCODE 93CODE 93 EXTENDEDCODE 128EAN 8EAN 13EAN 128EAN 14SCC 14SSCC 18ITF 14ITF 6UPCAUPCEPOST NETSINGAPORE POST 4 STATEPLANETMSIRSS 14RSS 14 TRUNCATEDRSS LIMITEDRSS EXPANDEDUSPSSWISS POST PARCELPZNOPCDEUTSCHE POST IDENTCODEDEUTSCHE POST LEITCODEROYAL MAIL 4 STATEDATA MATRIXQR CODEPDF 417PDF 417 MACRO等,可设置条码颜色,边框,边距,宽度以及各种属性,数据样式等等。

Jar文件获取及导入:

方法1:通过官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Barcode.jar文件导入到java程序。参考如下导入效果:

方法2可通过maven仓库安装导入。可参考导入方法


Java 代码示例

【示例1】创建一维条形码

  1. import com.spire.barcode.BarCodeGenerator;
  2. import com.spire.barcode.BarCodeType;
  3. import com.spire.barcode.BarcodeSettings;

  4. import javax.imageio.ImageIO;
  5. import java.awt.*;
  6. import java.awt.image.BufferedImage;
  7. import java.io.File;
  8. import java.io.IOException;

  9. public class CreateBarcode {
  10.     public static void main(String[] args) throws IOException {
  11.         BarcodeSettings settings = new BarcodeSettings();//创建BarcodeSettings实例
  12.         settings.setType(BarCodeType.Code_128);//指定条码类型
  13.         settings.setData("123456789");//设置条码数据
  14.         settings.setData2D("123456789");//设置条码显示数据
  15.         settings.setShowTextOnBottom(true);//设置数据文本显示在条码底部
  16.         settings.setX(0.8f);//设置黑白条宽度
  17.         settings.setImageHeight(50);//设置生成的条码图片高度
  18.         settings.setImageWidth(70);//设置生成的条码图片宽度
  19.         settings.hasBorder(true);//设置边框可见
  20.         settings.setBorderColor(new Color(135,206,250));//设置条码边框颜色
  21.         settings.setBorderWidth(1);//设置条码边框宽度
  22.         settings.setBackColor(new Color(240,255,255));//设置条码背景色

  23.         BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//创建BarCodeGenerator实例
  24.         BufferedImage bufferedImage = barCodeGenerator.generateImage();//根据settings生成图像数据,保存至BufferedImage实例
  25.         ImageIO.write(bufferedImage, "png", new File("CODE128.png"));//保存条码为PNG图片
  26.         System.out.println("Complete!");
  27.     }
  28. }

条码创建效果:


【示例2】创建二维码

  1. import com.spire.barcode.*;

  2. import javax.imageio.ImageIO;
  3. import java.awt.*;
  4. import java.awt.image.BufferedImage;
  5. import java.io.File;
  6. import java.io.IOException;

  7. public class CreateQR {
  8.     public static void main(String[] args) throws IOException {

  9.         BarcodeSettings settings = new BarcodeSettings();//创建BarcodeSettings实例
  10.         settings.setType(BarCodeType.QR_Code);//设置条码类型为QR二维码
  11.         settings.setData("Hello 123456789");//设置二维码数据
  12.         settings.setData2D("Hello 123456789");//设置二维码显示数据
  13.         settings.setQRCodeDataMode(QRCodeDataMode.Alpha_Number);//设置数据类型
  14.         settings.setX(1.0f);//设置二维码模型宽度
  15.         settings.setQRCodeECL(QRCodeECL.H);//设置二维码纠错级别
  16.         settings.setImageWidth(50);//设置生成的二维码图片宽度
  17.         settings.setImageHeight(50);//设置生成的二维码图片高度
  18.         settings.hasBorder(false);//设置二维码边框不可见

  19.         BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//创建BarCodeGenerator实例
  20.         BufferedImage bufferedImage = barCodeGenerator.generateImage();//根据settings生成图像数据,保存至BufferedImage实例
  21.         ImageIO.write(bufferedImage, "png", new File("QRCode.png"));//保存二维码图片为PNG格式
  22.         System.out.println("Complete!");
  23.     }
  24. }

二维码创建效果:


【示例3】读取/识别条码

  1. import com.spire.barcode.*;

  2. public class ScanBarcode {
  3.     public static void main(String[] args) throws Exception{
  4.         //使用scan方法从图片中识别Code 128条形码
  5.         String[] datas = BarcodeScanner.scan("CODE128.png", BarCodeType.Code_128);
  6.         System.out.print(datas[0]);
  7.     }
  8. }

识别结果:



(本文完)

转载请注明出处!!

分享好友

分享这个小栈给你的朋友们,一起进步吧。

应用开发
创建时间:2020-06-17 15:31:04
应用软件开发是指使用程序语言C#、java、 c++、vb等语言编写,主要是用于商业、生活应用的软件的开发。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~