`

转载:java 处理 barCode(条形码)

 
阅读更多
生成条形码:
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 线程,确保在发生“象机关枪扫射一样连续快速扫

描”时不会丢失条形码。
分享到:
评论

相关推荐

    免费.Net条形码组件:Spire.BarCode for .NET

    Spire.BarCode提供了一个非常简单的方法来集成条形码处理功能。一行代码就可以生成、读取一维和二维条形码。Spire.BarCode支持包括Bitmap, JPG, PNG, EMF, TIFF, GIF and WMF等众多常用的图片格式。 主要功能: 1....

    Java三种生成条形码的源码(barcode4j、jbarcode、google-zxing)

    以下是关于使用Java生成条形码的三个主要方法的详细解释:barcode4j、jbarcode和google-zxing。 1. **barcode4j**: Barcode4J是一个开源的Java库,基于Apache 2.0许可,专门用于生成各种类型的条形码。它使用XML...

    Barcode-Scanner-Java:Java中的条形码扫描器。 使用ZXing

    标题中的“Barcode-Scanner-Java”表明这是一个关于在Java环境中实现条形码扫描功能的项目。ZXing(Zebra Crossing)是它所依赖的一个开源库,用于读取、生成多种类型的条形码和二维码。ZXing是用Java编写的,因此...

    Java实现条形码打印

    目前比较通用的用Java实现条形码打印的集成插件主要有:barbecue和barcode4j. 但是用barbecue,条形码可以显示出来,可是下面对应数字却不能显示出来,当然可以自己手动加上去,不过那就不是一张图片里面的了,并且...

    java源码:Java条形码生成库 Barcode4J.zip

    Java条形码生成库Barcode4J是一个开源项目,主要用于在Java环境中生成各种类型的条形码。这个库由Krysalis发起,后来被Apache软件基金会接纳,并成为Apache XML项目的一部分。Barcode4J提供了强大的功能,使得开发者...

    barcode4J实现条形码生成

    barcode4j开源Java条形码生成库。支持多种编码格式,比如:code-39,code-128等 http://barcode4j.sourceforge.net/ zxing是由google开源的1D/2D编解码类库。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行...

    tt4.rar_barcode_java 条形码_条形码_条形码 java

    1. **库的使用**:Java社区提供了一些开源库,如ZXing(Zebra Crossing)和Java Barcode Reader,用于读取和生成条形码。ZXing是一个全能的条码处理库,支持多种格式,如EAN、UPC、QR码等。开发者可以借助这些库的...

    java barcode4j 条形码生成源码

    Java Barcode4J 条形码生成源码是用于在Java应用程序中创建条形码图像的开源库。 Barcode4J是一个高度灵活的XML驱动的条形码生成器,它使用Apache XML Graphics项目中的Batik SVG渲染引擎来将XML描述转换为各种图形...

    BarCode条形码控件!

    BarCode条形码控件通常支持多种条码格式,使得开发者可以根据需求选择最适合的类型。 2. 使用BarCode控件开发: 在软件开发中,BarCode控件是一个可插入到应用程序中的组件,允许程序生成、显示和读取条形码。...

    Free Spire.Barcode for Java版本: 5.1.1

    通过这些特性,Free Spire.Barcode for Java 5.1.1成为Java开发者的理想工具,能够有效地处理条形码生成和识别任务,提升开发效率。在实际项目中,只需按照官方提供的教程和示例,开发者便能轻松地利用这个库实现所...

    免费版 Java Barcode组件_Free Spire.Barcode for Java 1.3

    Free Spire.Barcode for JAVA 是一款基于 JAVA 语言开发的,免费的专门对条形码进行操作的类库。使用者可以仅通过一两行代码来创建自己需要的条形码类型及数据,并整合应用到开发程序上。 主要功能和特点如下: 1....

    java条形码识别

    ZXing,又称“斑马线”,提供了Java版本的API,可以方便地集成到Java应用中进行条形码处理。在提供的压缩包文件中,我们可以看到两个关键的jar包:zxing.jar和zxing-j2se.jar。 1. **zxing.jar**:这是ZXing的核心...

    java 条形码生成工具

    本文将详细介绍如何在Java环境中利用特定的库,如barcode4j,来创建和生成条形码。 首先,我们要理解什么是条形码。条形码是一种图形化数据表示方式,通过不同宽度和间隔的条纹组合来编码信息。它使得数据能够快速...

    使用 Java 读取条形码代码文件

    1. **选择库**:Java生态系统中有多种库可以用来读取条形码,如ZXing(Zebra Crossing)和BarCode4J。ZXing是一个开源项目,提供了全面的条形码读取和生成功能,支持多种格式,如EAN、UPC、Code 128等。BarCode4J则...

    Barcode条形码jar

    "Barcode条形码jar"是一个专门针对JAVA和JSP开发的条形码生成库,它提供了便捷的方式来创建各种常见的条形码类型。这个压缩包包含了必要的资源和文档,帮助开发者快速集成到他们的项目中。 首先,我们来详细了解下...

    Java 生成条码 保存在pdf上例子(亲测)

    Java生成条码并将其保存在PDF上的技术是一个实用的编程任务,常见于自动化文档处理、库存管理和产品标签等领域。在本示例中,我们将探讨如何使用Java实现这一功能,并涉及如何添加水印以增强PDF的安全性和标识性。 ...

    Java 免费Barcode控件_Spire.Barcode-FE_2.6.2.zip

    Free Spire.Barcode for Java 是一款基于 Java 语言开发的,免费的专门对条形码进行操作的类库。适用于商业或个人用途。这款产品的主要功能在于帮助开发人员轻松快捷高效地生成、读取和扫描一维条码和二维条码。 ...

    Java BarCode4j实例源码

    Java BarCode4j实例源码是用于在Java应用程序中生成条形码的一种解决方案。BarCode4j是一个开源项目,它提供了强大的条形码生成能力,支持多种条形码格式,如Code39、EAN、UPC等。在这个实例源码中,我们将深入探讨...

    Java条形码生成库 Barcode4J

    **Java条形码生成库 Barcode4J** Barcode4J 是一个用Java编写的开源条形码生成库,它提供了一种灵活的方式,使得在Java应用程序、Web应用或服务器环境中生成各种类型的条形码成为可能。这个库是基于Apache 2.0许可...

    Java条形码生成库 Barcode4J.7z

    Java条形码生成库Barcode4J是一个开源项目,专门用于在Java环境中生成各种类型的条形码。这个库是由James Bridle开发的,并且受到了Apache 2.0许可证的保护,这意味着它对开发者友好,可以免费用于商业项目。 ...

Global site tag (gtag.js) - Google Analytics