晓杰0 2019-07-01
干货不敢私藏,赶紧分享给大家。
这年头如果用python3
做条形码的,肯定(推荐)用pystrich
。
这货官方文档貌似都没写到支持Code128
,但是居然有这个类(Code128Encoder
)。。。。
一些喷墨打印机,如果质量差一点的话,喷出来的条码,会沾到一起,不好识别。
而用pystrich
的话,会发觉宽度无法调节。
于是想到了用条形码字体
来自己控制大小,找是找到字库了,但是你会发觉,你生成的东西,无法被扫描识别,
那是因为,这东西得转换后,才能打印啊。。。
经过千辛万苦,终于找到一篇文章说到转换的,地址在这里
我用的是Code128B,用python重写如下。
def conver_code128b(self, inputData): checksum = 104 for ii, char in enumerate(inputData): asciiStr = ord(char) if asciiStr >= 32: checksum += (asciiStr - 32) * (ii + 1) else: checksum += (asciiStr + 64) * (ii + 1) checksum = checksum % 103 if checksum < 95: checksum += 32 else: checksum += 100 result = chr(204) + str(inputData) + chr(checksum) + chr(206) return result
有需要的拿走,点个赞,谢了!