发现一个同学需要改变Bartender条码的长短

软件教程 admin 2016-03-21 18:55 3088 0

转自别的网站的提问和答复,答复说的虽然有点道理,但是对于提问者来说确实十分的不公平。

实际上,提问者的问题是能解决的。当然,也不是随意调整长短,而是可以基本满足条件的调整。正如他自己说的要么长要么短,而我的方法可以是正好了。有心的同学可以参考我别的文章有提及解决方法。这里就不赘述了。


问题:

标签的尺寸是75x25mm的,用的是Code 39,但是条形码的数据多,显示很长,不能全部打到标签上面。所以我就去改它的密度,怎么改也不行,要么长,要么短的,之后我就下载了个BarTender9.4的版本(原本是6.0的),但是还是和6.0的一样,不行,所以我想问下,是不是不管哪个BarTender版本,条形码的密度都是固定的,不能手动随意打个数字?有什么办法可以解决?(除了改标签尺寸)
 
 
 
百浩科技解答:
 
您对条形码密度提出了这样的疑问,说明您对条形码的构造和条码打印机的原理不甚了解。
 
 
条形码的构造(Code39):条码的编码方法就是要通过设计条码中条与空的排列组合来表示不同的二进制数据。条与空的宽窄设置不同,用宽单元表示二进制的“1”,而用窄单元表示二进制的“0”,宽窄单元之比一般控制在2~3,所以控制code39条形码的宽度是通过“窄条”和“宽窄比”来实现的。这两个参数在bartender中被称作“尺寸”和“长宽度”,不同的软件中称呼可能有所不同,“长宽比”从2.0-3.0之间可选,“尺寸”最小值根据打印机的分辨率来决定。
 
 
条码打印机的原理:既然“尺寸”最小值根据打印机的分辨率来决定。那么就要从条码打印机的分辨率说起了,条码打印机采用的也是点阵式的打印方式,通过分布在打印头上面的热敏元件的发热来进行打印,热敏元件的分布根据打印机不同分辨率有所不同,比如203dpi的条码打印机,1mm内分布有8个热敏元件,而300dpi的条码打印机,1mm内分布有12个热敏元件,根据计算,203dpi的条码打印机一个独立热敏元件占用空间为0.125mm,300dpi的条码打印机一个独立热敏元件占用空间为0.083mm;所以对于203dpi 的条码打印机其可以打印的最小线条为0.125mm(尺寸为0.125mm,bartender中近似为0.13mm),对于300dpi的条码打印机其可以打印的最小线条为0.083mm(尺寸为0.083mm,bartender中近似为0.08mm),并且尺寸的设置只能够为最小线条的整数倍,比如对于203dpi 的条码打印机尺寸可以设置为:0.13mm、0.25mm、0.38mm、0.5mm...,比如对于300dpi 的条码打印机尺寸可以设置为:0.08mm、0.17mm、0.25mm、0.34mm...,并不能像您问题中提到的那种——随便数个密度值。
 
 
在不改变标签尺寸的前提下,唯一可以改善您说的那个问题——“要么长,要么短的”(不改变码制的前提下),唯一的方法是改变条码打印机的分辨率。
当您采用203dpi分辨率的条码打印机时,可调的尺寸仅有:0.13mm、0.25mm、0.38mm、0.5mm...
而当您采用600dpi分辨率的条码打印机时,可调的尺寸有:0.04mm、0.08mm、0.13mm、0.17mm、0.21mm、0.25mm、0.3mm、0.34mm、0.38mm、0.42mm、0.47mm、0.51mm...
 
从可选尺寸上可以看到,600dpi分辨率的条码打印机打印出来的条码具有更多可选的条形码宽度(相同位数和相同长宽度的情况下)。
 
 
只要是通过精确算法来实现条形码打印的,那么条形码的宽度就不是可以随意调整的,随意调整条形码的宽度,只有一个方法那就是图形,通过图形的缩放来实现条形码宽度的随意调整,比如用coreldraw,但这样的条形码在缩放过程中会破坏窄条、窄空、宽条、宽空,导致条码扫描器无法识别条形码的问题,这种方法不建议使用。


评论区