当前位置: 技术问答>java相关
急急急...java中的条码打印怎样实现?这点分是我的全部,望各位帮帮我!
来源: 互联网 发布时间:2015-01-03
本文导语: | 方法也有的,可以在操作系统中增加条码的字体,或者用别人的条码控件.这两种的弊端前面已经讲过啦,不是最好的办法. 最牛B的是:根据条码的原理和规则,用C语言写,很难的!连条码的宽度、分辨率都要考...
|
方法也有的,可以在操作系统中增加条码的字体,或者用别人的条码控件.这两种的弊端前面已经讲过啦,不是最好的办法.
最牛B的是:根据条码的原理和规则,用C语言写,很难的!连条码的宽度、分辨率都要考虑到。
最牛B的是:根据条码的原理和规则,用C语言写,很难的!连条码的宽度、分辨率都要考虑到。
|
tuppin(熊王) 的方法也可以,但是不可靠!
如果你的对象是小公司,购买条玛打印机有点困难的话,可以这么干,(现在一台条玛打印机一般是3.5万-4.5万).如果用tuppin(熊王) 的方法的话,虽然省去条玛打印机的钱,但是条玛的分辨率很低,容易脱落或者模糊,而且格式不好控制,后患无穷.
如果你的对象是小公司,购买条玛打印机有点困难的话,可以这么干,(现在一台条玛打印机一般是3.5万-4.5万).如果用tuppin(熊王) 的方法的话,虽然省去条玛打印机的钱,但是条玛的分辨率很低,容易脱落或者模糊,而且格式不好控制,后患无穷.
|
很难控制!
举个例子吧,你把要打印的信息转换成ZPL语句后,通过程序把这些语句发到条玛打印机,条玛打印机将这些数据保存在缓存中,接着条玛打印机开始打印,如果这时你的电脑发生故障的话是不影响条玛打印机工作了,因为数据已经在条玛打印机的缓存中。但是如果你发现要打印的数据有错,要通过程序中止条玛打印机,这是非常困难的,因为数据已经在缓存中,要直接控制条玛打印机缓存中的数据,困难的程度你可以想象吧。
所以能交给条玛打印机完成的工作就让条玛打印机完成,实在不行再自己编程序来完成,把精力集中在格式控制、数据转换和语言转换上。
举个例子吧,你把要打印的信息转换成ZPL语句后,通过程序把这些语句发到条玛打印机,条玛打印机将这些数据保存在缓存中,接着条玛打印机开始打印,如果这时你的电脑发生故障的话是不影响条玛打印机工作了,因为数据已经在条玛打印机的缓存中。但是如果你发现要打印的数据有错,要通过程序中止条玛打印机,这是非常困难的,因为数据已经在缓存中,要直接控制条玛打印机缓存中的数据,困难的程度你可以想象吧。
所以能交给条玛打印机完成的工作就让条玛打印机完成,实在不行再自己编程序来完成,把精力集中在格式控制、数据转换和语言转换上。
|
You should draw by yourself.
In a canvas or other component, you draw it in method paint, and print this component.
In a canvas or other component, you draw it in method paint, and print this component.
|
现在条玛打印最通用的是Zebra公司的,所以你首先需要一本关于ZPL(Zebra Programming Language)的书,你可以到zebra公司的网站上去下载。(http://www.zebra.com)
其实条玛打印的基本原理就是将你需要打印的数据转换成条玛打印机能识别的ZPL语言,然后输出到条玛打印机,剩下的事情条玛打印机会帮你搞定。所以,关键在于如何将你需要打印的数据根据打印要求转化成ZPL语言。
其实条玛打印的基本原理就是将你需要打印的数据转换成条玛打印机能识别的ZPL语言,然后输出到条玛打印机,剩下的事情条玛打印机会帮你搞定。所以,关键在于如何将你需要打印的数据根据打印要求转化成ZPL语言。
|
^XA
^FO24,12^AF^FD2501C^FS^FO288,12^AF^FD00-11-13 11:45:53^FS
^FO24,36^BY^BE,0,Y,N,N^FD>:0101000ADB>50001200001^FS
^FO24,12^AF^FD2501C^FS^FO288,12^AF^FD00-11-13 11:45:53^FS
^FO24,36^BY^BE,0,Y,N,N^FD>:0101000ADB>50001200001^FS
^FO552,12^AF^FD2501C^FS^FO816,12^AF^FD00-11-13 11:45:53^FS
^FO552,36^BY^BE,0,Y,N,N^FD>:0101000ADB>50001200001^FS
^FO552,12^AF^FD2501C^FS^FO816,12^AF^FD00-11-13 11:45:53^FS
^FO552,36^BY^BE,0,Y,N,N^FD>:0101000ADB>50001200001^FS
^XZ
这就是ZPL语言.你把它输出到Zebra公司的条玛打印机就有条玛打印出来,具体的格式需要自己调
^FO24,12^AF^FD2501C^FS^FO288,12^AF^FD00-11-13 11:45:53^FS
^FO24,36^BY^BE,0,Y,N,N^FD>:0101000ADB>50001200001^FS
^FO24,12^AF^FD2501C^FS^FO288,12^AF^FD00-11-13 11:45:53^FS
^FO24,36^BY^BE,0,Y,N,N^FD>:0101000ADB>50001200001^FS
^FO552,12^AF^FD2501C^FS^FO816,12^AF^FD00-11-13 11:45:53^FS
^FO552,36^BY^BE,0,Y,N,N^FD>:0101000ADB>50001200001^FS
^FO552,12^AF^FD2501C^FS^FO816,12^AF^FD00-11-13 11:45:53^FS
^FO552,36^BY^BE,0,Y,N,N^FD>:0101000ADB>50001200001^FS
^XZ
这就是ZPL语言.你把它输出到Zebra公司的条玛打印机就有条玛打印出来,具体的格式需要自己调
|
告诉你个更简单的办法吧,去找条码的True Type字库,网上有,WPS 2000里也带,
然后把它们装上,比如想打印EAN-8的条码:89302705(我身边的555烟上的:) )
选那个字库,在程序里打那串数字就可以了。
我在300dpi的喷打试过,用扫描器扫没没问题,如果你用针打(180dpi),很新的可以,但
不可靠。
然后把它们装上,比如想打印EAN-8的条码:89302705(我身边的555烟上的:) )
选那个字库,在程序里打那串数字就可以了。
我在300dpi的喷打试过,用扫描器扫没没问题,如果你用针打(180dpi),很新的可以,但
不可靠。