python3转换ITF25(交叉25

发布时间:2019-10-18 09:07:11编辑:auto阅读(668)

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


    这字库不好找啊。推荐:地址1 地址2 地址3

    而且这个ITF25的转换规则也很变态,看了几篇文章后才领悟,参考:文章1 文章2


    关键点是:

    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 + ')'

    有需要的拿走,点个赞,谢了!

关键字