java 处理 barCode(条形码)
生成条形码:
http://barcode4j.sourceforge.net/download.html
1.下载压缩包barcode4j-2.0alpha2-bin.zip和barcode4j-2.0alpha2-src.zip。
2、解压barcode4j-2.0alpha2-bin.zip这个包,在build目录下有barcode4j.jar,在lib目录下有avalon- framework-4.2.0.jar, 将barcode4j.jar和avalon-framework-4.2.0.jar添加到项目的lib中,刷新工程,然后在项目配置中将这两个jar 包添加到classpath里面去。
3、解压将barcode4j-2.0alpha2-src.zip,将src\java\org\krysalis\barcode4j\servlet目录下的BarcodeServlet.java类的代码拷出来,修改默认的图片显示方式,BarcodeServlet.java第168行的默认图片显示格式改成jpeg(因为不是所有的浏览器都支持svg格式,也不是所有的浏览者都愿意给自己的浏览器加一个这样的插件)

下载barCode.zip
配置 web.xml
<servlet>
<servlet-name>CreateBarCode</servlet-name>
<servlet-class>com.soft4j.barcode.BarCodeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CreateBarCode</servlet-name>
<url-pattern>/CreateBarCode</url-pattern>
</servlet-mapping>

表示要访问/createBarCode实际是访问barCodeServlet类。
页面上写<img src="xxx/CreateBarCode?code=xxxx&barType=CODE39&checkCharacter=n&checkCharacterInText=n">类似形式,参数如下:
barType(默认为CODE128):   条码类型.支持18钟类型,分别是CODE39,CODE39EXT,INTERLEAVED25,CODE11,CODABAR,MSI,UPCA,IND25,MAT25,CODE93,EAN13,EAN8,UPCE,CODE128,CODE93EXT,POSTNET,PLANET,UCC128 .

code:   要打印的条码内容.   
width(默认为自适应,一般不用自行设置):   图片宽度.width,height要同时都设置才有效.    
height(默认为自适应,一般不用自行设置):   图片高度.width,height要同时都设置才有效.    
st(默认为y显示):   是否显示条码内容(show   text).默认会在条码图片下方显示条码内容,有效值为y和n.    
textFont(默认为Arial|PLAIN|11):   条码文本的字体,字体有效格式为<font   name>|<style>|<size>.Style可以是PLAIN,ITALIC或BOLD.   
fontColor(默认为黑色):   条码文本的颜色,有效值为RED,BLUE,GREEN,BLACK,GRAY,LIGHTGRAY,WHITE,DARKGRAY,YELLOW,ORANGE,CYAN和MAGENTA.   
barColor(默认为黑色):   条码的颜色.    
backColor(默认为白色):   图片背景颜色.    
rotate(默认为0):   设置条码旋转角度.有效值为0(不旋转),90(旋转90度),180(旋转180度),270(旋转270度).  
barHeightCM(默认为1厘米):   条码的高度.    
x(默认为0.03厘米,一般不用自行调整):   条码符号中窄单元的标称尺寸,最小可设置为0.001即1象素,通常以0.03递增.  
n(默认为2倍):   宽窄比,平均宽条的条宽与平均宽空的空宽之和(条码字符间隔不计在内)除以两倍窄单元尺寸.它是宽度调节编码法中的技术参数.  
leftMarginCM(默认为0.3厘米):   条码与图片左右边的距离.    
topMarginCM(默认为0.2厘米):   条码与图片上下边的距离.    
checkCharacter(默认为y,一般不用自行设置):   是否自动计算check   character,有效值为y和n.    
checkCharacterInText(默认为y,一般不用自行设置):   条码内容是否自动计算check   character,有效值为y和n.    
Code128Set(默认为0自动选择,一般不用设置):   设置CODE128中使用的字符集.有效值为0,A,B,C.    
UPCESytem(默认为0,一般不用自行设置):   UPCE中使用的编码系统.有效值为0和1.    
------------------------------------
其中关键的参数主要是 barType,code这2个. 另外把checkCharacter和checkCharacterInText这2个参数设置成n, 如果是y的话,会在你的条形码后面追加一个校验码, 虽然不影响使用(扫描设备扫描条形码得到数据不会出现校验码),但是看着比较别扭(如下图).

/*************************************************************************************************/
读取条形码如下:
更详细关于串口的如下:http://fansong1983.blog.163.com/blog/static/271481020083711312229/

需要到其官方主页http://java.sun.com/products/javacomm/下载这个javax.comm,
将下载的文件解压缩后,在\javacomm20-win32\commapi目录下有必需的三个文件comm.jar,javax.comm. properties和win32comm.dll。将文件comm.jar拷贝到%JAVA_HOME%\jre\lib\ext;文件

javax.comm. properties拷贝到%JAVA_HOME%\jre\lib; 文件win32comm.dll拷贝到%JAVA_HOME%\bin。注意%JAVA_HOME%是jdk的路径,而非jre。

代码如下:
CommPortIdentifier commPort = CommPortIdentifier.getPortIdentifier("COM1");//获取串口1
serialPort = (SerialPort)commPort.open("Barcode Scanner",3000);//
inputStream = new BufferedReader (new InputStreamReader(new BufferedInputStream(serialPort.getInputStream())));//获取输入流
serialPort.setInputBufferSize(200);//设置缓冲区
serialPort.addEventListener(this);//设置监听器
serialPort.notifyOnDataAvailable(true);//设置监听模式,如果有数据,就激活
serialPort.setSerialPortParams(BAUD_RATE, SerialPort.DATABITS_8,SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);//设置波特率,设置数据类型,优先级等串口参数

我们使用输入流来将字节数组转换成 String。但是,我们发现当使用不同的条形码扫描器和条形码时有下列问题。
当处理大于 100 个字符的大条形码时,会发出两个 serialEvent:第一个 serialEvent 的缓冲区只被部分填充,第二个 serialEvent 的缓冲区被完全填充。解决这个问题的最简单方法是当缓冲区中的

数据不完整时忽略该事件,并等待直到它完整为止才将它传递到侦听器。
if (inputStream.available() < length)
return;

后,当读取和转换条形码时,我们必须通知所有侦听器有关新 String 的信息。但是,在侦听器的所有 barCodeScanned() 方法中循环很费时,尤其当它们查询数据库时(正如它在本案例中所做的)。

在 Java 抽象窗口工具包(Java Abstract Window Toolkit,AWT)模型中,如果还没有完成第一个事件的 actionPerformed() ,那么单击按钮两次将不会发出两个 ActionEvent。这对于条形码扫描器

来说是无法接受的,因为当快速读取条形码时,我们不能允许丢失它们。因此,我们必须为每个条形码读取产生一个新线程,使该线程调用并等待 AWT 线程,确保在发生“象机关枪扫射一样连续快速扫描”时不会丢失条形码。

java 处理 barCode(条形码)相关推荐

  1. java条码扫描_【教程】条形码组件Spire.Barcode 教程:在Java中扫描条形码

    Spire.Barcode for Java支持生成各种类型的条码,如Code 128,Pdf 417,QR码等.同时,它还支持从生成的条码图像中读取数据. 本文演示如何使用Spire.Barcode ...

  2. 编程语言Java 扫描识别条形码图片

    编程语言Java 扫描识别条形码图片 1.条形码扫描识别的实现方法及步骤 本文以Java代码示例介绍如何来扫描和识别条形码图片.这里使用免费条码工具 Free Spire.Barcode for Ja ...

  3. BARCODE条形码插件及ean13

    1.BARCODE条形码插件 注意:barcode支持任意位数的数字转换为条形码 1)query.barcode.js安装 同其他jquery插件一样,只需要将jquery框架和jquery.barc ...

  4. JAVA生成code128条形码

    JAVA生成code128条形码 引入maven坐标 <dependency><groupId>net.sf.barcode4j</groupId><arti ...

  5. java 实现生成条形码

    今天有个新的需求,要在系统中自动生成条形码,之前也没做过生成条形码的功能,今天正好研究一下. 解决方法: Java 生成条码的方案 :    jbarcode.barcode4j.zxing 其实都可 ...

  6. 条形码组件Spire.Barcode 教程:在Java中扫描条形码

    2019独角兽企业重金招聘Python工程师标准>>> Spire.Barcode for Java支持生成各种类型的条码,如Code 128,Pdf 417,QR码等.同时,它还支 ...

  7. Java 扫描识别条形码图片

    1.条形码扫描识别的实现方法及步骤 本文以Java代码示例介绍如何来扫描和识别条形码图片.这里使用免费的条码工具Free Spire.Barcode for Java,调用BarcodeScanner ...

  8. java生成矢量条形码二维码

    产品说条形码模糊,然后就生成了矢量的条形码给前端用.后面才知道前端是可以自己直接生成的. 还是记录一下 遇到一个奇怪的问题,在demo工程里面请求返回的流页面能直接显示出图形.但是在项目工程里面却返回 ...

  9. java+web+打印条形码_javaweb条形码产生、打印、扫描

    产生条形码的插件到是不少,但是能用针式打印机打印在合适表单上,而且能用常用的激光扫描器扫描出来的demo到不是很多. 本文,所牵扯的代码与工具均亲测可用. 使用工具: epson  LQ-630K针式 ...

最新文章

  1. python3.6.2安装教程-python 3.6.2 安装配置方法图文教程
  2. ABAP选择屏幕权限控制
  3. 【 如何将.vue文件中的所有css代码放入一个.css文件中】
  4. 微型计算机原理第二版学习辅导,微型计算机原理及应用学习辅导.pdf
  5. Iplat 4J 6.2 常见问题
  6. 人生苦短 我学python之OldBoy21天入门_day01·Python基础语法
  7. 外网接口(浏览器接口)调取设备数据,放到数据库里
  8. 易语言计算机代码,易语言基础教程之简单代码的编写
  9. [洛谷P3444] [POI2006]ORK-Ploughing
  10. 《推荐系统实战(一)》基于统计的电影推荐系统(tmdb-5000数据集,数据清洗、特征提取、搭建模型等详细过程)
  11. JS基础-模拟京东快递单号查询案例
  12. Flash选择合适的稳压芯片
  13. Thinkpad T410i升级问题
  14. 面试技巧之面试官常提的问题
  15. C语言卡路里程序,燃烧app的卡路里--app瘦身之路
  16. 面向对象设计,ORM,NHIBERNATE杂谈(有感)
  17. Python绘制气象风场
  18. java 直线交点_[Java教程]谈谈求线段交点的几种算法(js实现,完整版)
  19. 浪潮服务器bios怎么找回密码,服务器BIOS密码丢失解决方法
  20. M: Mysterious Conch(哈希表)

热门文章

  1. 【Stream】java8新特性Stream流总结
  2. 4.分支语句和循环语句
  3. linux上怎么实现ssh免密登录
  4. Java项目中这样打印错误日志,排查问题更高效
  5. 计算机二级vb考试怎么准备,计算机二级考试内容是什么 各科目该怎么准备
  6. 基于html+css的购物网站前端页面【折扣社】前端网站
  7. 英语 词根 词缀 查询网址
  8. 借助网盘离线下载从官网下载DB2-Express C
  9. 腾讯优图TFace正式开源,更可信的人脸识别!
  10. 互联网注定被抛弃,未来30年属于硬科技!深层逻辑是这样的