条形码数 最好一位是校验位,是不计入计算的
所以for循环只取到倒数第二位才是正确的
按照条形码数的定义,写会比较直观
找了一个12位的条形码,修改了一下,字符串校验通过方法获得,没有写死,也适用
public class test9{
public static void main(String[] args)
{
String en13 = "693461310001";
// String en13 = "6901020709017";
// String en13 = "9771671216014";
// String en13 = "6911989107458";
int a = 0;
int b = 0;
int cout = 1;
for(int i = en13length() -1 -1 ; i >= 0; i--){
int num = en13charAt(i)-'0';
if((cout%2)==0){
a+=num;
}else{
b+=num;
}
cout ++;
}
Systemoutprintln(b);
Systemoutprintln(a);
int sum = a+b3;
Systemoutprintln(sum);
int c = sum%10;
int d = 10-c;
Systemoutprintln(d);
if(d==en13charAt(en13length() - 1)-'0'){
Systemoutprintln("OK");
}else{
Systemoutprintln("NO");
}
}
}
这位老兄,这个问题不是很简单嘛,你可以再你的配置文件中写一个字符编码过滤,可以写在webxml文件里面,中文的话,你最好采用UTF-8编码方式,一般不会出错,当然你也可以使用GBK
public static final int height = 226 + 2 border; // 8cm + border
public static final int width = 212 + 2 border; // 75cm + border
private static final int rate = 3; // 条码宽条与窄条宽度之比
private static int m_nNarrowWidth = 10; // 窄条的宽度像素数
private static int m_nImageHeight = 250; // 条码的高度像素数
// =========添加条形码begin===================
Barcode128 barcode128 = new Barcode128();
String strCodes = shipmentgetPostalReferenceNo();
barcode128setCode(strCodes);
int nImageWidth = (strCodeslength() (3 rate + 7) m_nNarrowWidth);
javaawtimageBufferedImage bufferedImage = new BufferedImage(
nImageWidth, m_nImageHeight + 13, BufferedImageTYPE_INT_RGB);
Graphics2D g = (Graphics2D) bufferedImagegetGraphics();
gfillRect(0, 33, nImageWidth, 13);
javaawtImage codeImg = barcode128createAwtImage(Colorblack,
Colorwhite);
gdrawImage(codeImg, 0, 0, nImageWidth, m_nImageHeight, null);
gsetColor(ColorBLUE);
gdispose();
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIOwrite(bufferedImage, "jpg", os);
Image img1 = ImagegetInstance(ostoByteArray());
img1setAlignment(ImageALIGN_CENTER);
你试试
一维码的话,加上hrp属性:hrp=none,可以把数字栏去除。
src="<%=requestgetContextPath()%>/genbcmsg=123456&type=code128&fmt=jpeg&hrp=none"
在用条码软件生成条形码的时候,可以看到在标签中的条码分为上部分的黑白条图形部分,和图形下面的数据部分。条形码下面的数据间距一般是由条码打印软件自动调整生成的。不过有时在做条形码的时候,用户会需要根据实际的情况自定义调正条形码数据之间的间距,是外观更加美观。在领跑标签条码打印软件中虽然不能直接设置调整条码的字间距,但是可以通过隐藏条码内容和普通文本的间距调整来达到目的。
这里以EW21040212001为内容,生成一个code 128码。下面介绍一下在领跑标签条码打印软件中如何调整条码内容的字间距。
一、打开领跑标签条码打印软件,绘制code128码,并设置条码内容。
在条码软件中,绘制一个条形码。选择要编辑的条码对象,右击鼠标,选择属性。在打开的图形属性中选择“条码”,设置条码类型。
然后再选择“数据源”选项卡,在数据对象栏中,有添加,修改,删除,向上,向下五个 *** 作按钮。我们先将默认的数据删除掉,然后选择**十字型的“添加”按钮,添加一个“手动输入”对象。将我们要编辑的EW20140212001DE 条码内容输入进入,点击“编辑”、“确定”完成条码生成。
二、在条码打印软件中隐藏条码自带的条码内容,新添加一个同样设置的普通文本调整间距。
在领跑标签条码打印软件中,虽然条码内容的字间距不能改变,普通文本的字间距却是可以自由变动的。
1、在标签中再绘制一个普通文本,然后按照设置条码内容的方法,将普通文本内容设置成EW201040212001。将普通文本设置的跟条码内容一样。如果条码内容是序列号,那么普通文本也要做同样的设置。以免扫描出来的条码跟显示的条码内容不一致。
2、在标签中右击条码对象,选着属性。然后选择外观选项卡,将“内容可见”勾选掉,就可以得到需要的,不显示内容的条形码。
3、设置普通文本的字间距。
选择普通文本对象,右击属性,在d出的图形属性窗口中,选择字体。在这里可以任意调整字体,样式,大小,颜色,字间距等。在高级选项中更可以对某一个字做特别设置。
调整字体直接的间距的可以选择字间距,输入适合数字,可以看到文本字体字间距的间距有变动。默认的是0,支持负值输入。
这就是在领跑标签条码打印软件中设置条码内容字间距的方法。有时候,可以通过更改字体或者是变动字体大小达到目的,不过这种方法局限性大,不灵活。在使用文章中介绍的方法设置字间距时一定要注意,普通文本的内容要跟条码内容设置的一致。
要是用打印机打印条形码的话,也可以不用Java代码的,除非你是这方面的专业的人员,要不这个还真搞不来,我一般打印条形码用的是一个条形码打印软件,它用的是哪种通用驱动,几乎对所有的打印机都能了连接打印的。
在这个软件里面绘制条形码,然后添加内容,并打印出来,而且现在专业的条形码打印软件支持多种类型的数据库导入,可以实现那种有多少个条码数据都能一次生成,而且可以批量打印出来,非常的方便。
上面这个是点击数据库设置可以导入那种TXT、Excel、access等很多种格式的文档,下面在添加条形码内容时,用数据库导入的方式添加,添加后直接点击预览,就能看到所有的数据按照Excel里面的顺序自动生成在每个标签上,就可以一次性打印出来所有的条形码啦
每批货物的物流单元上都贴有物流标签即条形码,而条形码是跟数据库连接起来的,如果这批货物在某一站点刷过,由站点位置再根据时间就能计算出货物实时位置。
有实力的物流公司则是在每台物流运输工具上装有GPS,实时监控,进行最合理的车辆调度
以上就是关于java 13位条形码的问题全部的内容,包括:java 13位条形码的问题、javaweb生成条形码解决中文问题、我看到你提问了java生成条形码的问题,请问你是用什么生成的我现在也有这个问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)