java 处理 barCode(条形码)

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

下载barCode.zip
配置 l
<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).默认会在条码图片下方显示条码内容,有效值为超顺磁性yn.   
textFont(默认为Arial|PLAIN|11):  条码文本的字体,字体有效格式为<font  name>|<style>|<size>.Style可以是PLAIN,ITALICBOLD.   
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,有效值为yn.   
checkCharacterInText(默认为y,一般不用自行设置):  条码内容是否自动计算check  character,有效值为yn.   
Code128Set(默认为0自动选择,一般不用设置):  设置CODE128中使用的字符集.有效值为0,A,B,C.   
UPCESytem(默认为0,一般不用自行设置):  UPCE中使用的编码系统.有效值为0平面涡卷弹簧和1.   
------------------------------------
中关键的参数主要是 barType,code2. 另外把checkCharactercheckCharacterInText2个参数设置成n, 如果是y的话,毛毡带会在你的条形码后面追加一个校验
, 虽然不影响使用(扫描设备扫描条形码得到数据不会出现校验码),但是看着比较别扭(如下图).



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

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

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

代码如下:
CommPortIdentifier commPort = PortIdentifier("COM1");//获取串口1
serialPort = (SerialPort)commPort.open("Barcode Scanner",3000);//
inputStream = new BufferedReader (new InputStreamReader(new InputStream())));//获取输入流
serialPort.setInputBufferSize(200);//设置缓冲区
serialPort.addEventListener(this);//设置
ifyOnDataAvailable(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 ToolkitAWT)模型中,如果还没有完成第一个事件的 actionPerformed() ,那么单击按钮两次将不会发出两个 ActionEvent。这对于条形码扫描器

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

时不会丢失条形码。
为了您的安全,请只打开来源可靠的网址
打开网站    取消
来自: hi.baidu/zccbestluck/blog/item/eb430becc491d905fcfa3c42.html

本文发布于:2024-09-23 18:16:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/219092.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:条码   条形码   设置
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议