python3转换ITF25(交叉25)条形码

继上篇的python3转换code128条形码之后,发现,由于code128密度太高,依然无法清晰打印。迫于无奈,只能选择这个密度低的条形码,就是:交叉25码(Interleaved 2of5)。

这字库不好找啊。推荐:地址1 地址2 地址3
而且这个ITF25的转换规则也很变态,看了几篇文章后才领悟,参考:文章1 文章2

关键点是:

要用括号包裹,用于标识开始和结束
每2个数字分割一次,独立转换为Unicode文字

def conver_itf25(self, inputData):
start_index = 0
datalist = []
if len(inputData) % 2 is not 0:
start_index = 1
datalist.append(inputData[0])

datalist += re.findall(r’\d{2}’, inputData[start_index:])

result = ”
for i, numStr in enumerate(datalist):
intStr = int(numStr)

if intStr <= 49:
result += chr(intStr + 48)
else:
result += chr(intStr + 142)

return ‘(‘ + result + ‘)’
有需要的拿走,点个赞,谢了!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理