最近一个oa系统用到了条形码,刚开始打电话给卖条形码打印机的那个公司(因为客户在他那里买的),看能不能提供一些接口规范什么的,结果说要提供接口可以,但必须交钱,心想算了,还是自己网上找找自己想办法解决以下吧。查阅了一下资料,感觉barcode4j还是比较好用。下面把心得和大家简单的分享一下。
1、 首先我到http://barcode4j.krysalis.org/网站上下载了barcode4j-2.0alpha2-src.zip压缩包。
2、把这个包解压, 解压barcode4j-2.0alpha2-src.zip这个包,在lib目录下有avalon-framework-4.2.0.jar,commons-cli-1.0.jar, 将这两个jar文件添加到项目的lib中,然后在项目配置中将这两个jar包添加到classpath里面去。将src\java\下面的源码copy到你的src目录,打开org\krysalis\barcode4j\servlet目录下的arcodeServlet.java类,修改默认的图片显示方式,BarcodeServlet.java第168行左右MimeTypes.MIME_SVG改为MimeTypes.MIME_JPEG(因为不是所有的浏览器都支持svg格式)。
3、 将以下这段servlet配置在web.xml中
<servlet>
<servlet-name>BarcodeServlet</servlet-name>
<servlet-class>org.krysalis.barcode4j.servlet.BarcodeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BarcodeServlet</servlet-name>
<url-pattern>/barcode</url-pattern>
</servlet-mapping>
4、 在页面中添加<img src="<%=request.getContextPath() %>/barcode?msg=12345678" />
5、他支持以下几种类型
默认的采用的是code128,你可以通过参数设置控制用那种类型显示。
<img src="<%=request.getContextPath() %>/barcode?msg=12345678&BARCODE_TYPE=code39" />
还可以设置宽度和高度,显示不显示数字等等,你们可以自己看一下源码。
lirCODE39: 39码仅有两种单元宽度,分别为宽单元和窄单元。宽单元这宽度为窄单元的1到3倍,一般多选用2倍、2.5倍或3倍。39码的每一个条码字符由九个单元组成,其中有三个宽单元,其余是窄单元,因此称为39码
39码,能表示字母、数字和其它一些符号共43个字符:A-Z,0-9,-.$/+%,空格条码的长度是可变化的,通常用“*”号作为起始、终止符,校验码不用代码密度介于3-9.4个字符/每英寸,空白区是窄条的10倍,用于工业、图书、以及票证自动化管理上
CODE39EXT: 全ASCII39码是39码的一种扩展用法,它利用标准39码和条码字符,经特定方法组合而表示ASCII字符集的128个字符.
CODE93: 93码使用与39码完全相同的字符集,但它的条码密度要比39码高
INTERLEAVED25: 交叉25码是一种长度可变的连续型自校验数字式码制,
其字符集为数字0-9,
采用两种元素宽度,每个条和空是宽或窄元素。
编码字符个数为偶数,所有奇数位置上的数据以条编码,偶数位置上的数据以空编码。
如果为奇数个数据编码,则在数据前补一位0,以使数据为偶数个数位
IND25: 工业25码,只能使用数字.跟交叉25码不同,它所有的信息都记录在条码线条中,条码空白只用来分隔条码条.
CODE11: Code11码,有效字符集为0123456789-
CODE128: Code128码可表示ASCII 0到ASCII 127共计128个ASCII字符,由于其字符集大,密度高,应用非常广泛。
国际UCC/EAN组织有一个专门的关于128码的条码标识标准,就是UCC/EAN128码,这种128码在全球范围内有统一的编码规范和解释。
CODABAR: 库德巴码是一种广泛应用在医疗和图书领域的条码,其字符集为0到9共10个数字、“ABCD”四个字母和“$-:/.+”六个特殊字符,其中“ABCD”仅作为启始符和终止符,并可任意组合。
MSI: MSI码只能使用数字,主要用于图书馆和零售业.
1、 首先我到http://barcode4j.krysalis.org/网站上下载了barcode4j-2.0alpha2-src.zip压缩包。
2、把这个包解压, 解压barcode4j-2.0alpha2-src.zip这个包,在lib目录下有avalon-framework-4.2.0.jar,commons-cli-1.0.jar, 将这两个jar文件添加到项目的lib中,然后在项目配置中将这两个jar包添加到classpath里面去。将src\java\下面的源码copy到你的src目录,打开org\krysalis\barcode4j\servlet目录下的arcodeServlet.java类,修改默认的图片显示方式,BarcodeServlet.java第168行左右MimeTypes.MIME_SVG改为MimeTypes.MIME_JPEG(因为不是所有的浏览器都支持svg格式)。
3、 将以下这段servlet配置在web.xml中
<servlet>
<servlet-name>BarcodeServlet</servlet-name>
<servlet-class>org.krysalis.barcode4j.servlet.BarcodeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BarcodeServlet</servlet-name>
<url-pattern>/barcode</url-pattern>
</servlet-mapping>
4、 在页面中添加<img src="<%=request.getContextPath() %>/barcode?msg=12345678" />
5、他支持以下几种类型
默认的采用的是code128,你可以通过参数设置控制用那种类型显示。
<img src="<%=request.getContextPath() %>/barcode?msg=12345678&BARCODE_TYPE=code39" />
还可以设置宽度和高度,显示不显示数字等等,你们可以自己看一下源码。
lirCODE39: 39码仅有两种单元宽度,分别为宽单元和窄单元。宽单元这宽度为窄单元的1到3倍,一般多选用2倍、2.5倍或3倍。39码的每一个条码字符由九个单元组成,其中有三个宽单元,其余是窄单元,因此称为39码
39码,能表示字母、数字和其它一些符号共43个字符:A-Z,0-9,-.$/+%,空格条码的长度是可变化的,通常用“*”号作为起始、终止符,校验码不用代码密度介于3-9.4个字符/每英寸,空白区是窄条的10倍,用于工业、图书、以及票证自动化管理上
CODE39EXT: 全ASCII39码是39码的一种扩展用法,它利用标准39码和条码字符,经特定方法组合而表示ASCII字符集的128个字符.
CODE93: 93码使用与39码完全相同的字符集,但它的条码密度要比39码高
INTERLEAVED25: 交叉25码是一种长度可变的连续型自校验数字式码制,
其字符集为数字0-9,
采用两种元素宽度,每个条和空是宽或窄元素。
编码字符个数为偶数,所有奇数位置上的数据以条编码,偶数位置上的数据以空编码。
如果为奇数个数据编码,则在数据前补一位0,以使数据为偶数个数位
IND25: 工业25码,只能使用数字.跟交叉25码不同,它所有的信息都记录在条码线条中,条码空白只用来分隔条码条.
CODE11: Code11码,有效字符集为0123456789-
CODE128: Code128码可表示ASCII 0到ASCII 127共计128个ASCII字符,由于其字符集大,密度高,应用非常广泛。
国际UCC/EAN组织有一个专门的关于128码的条码标识标准,就是UCC/EAN128码,这种128码在全球范围内有统一的编码规范和解释。
CODABAR: 库德巴码是一种广泛应用在医疗和图书领域的条码,其字符集为0到9共10个数字、“ABCD”四个字母和“$-:/.+”六个特殊字符,其中“ABCD”仅作为启始符和终止符,并可任意组合。
MSI: MSI码只能使用数字,主要用于图书馆和零售业.