可以进入官方第三方文档去具体查看学习https://pypi.org/project/python-barcode/
条码库python-barcode
首先需要安装barcode包,在安装barcode包的过程中可能会碰到类似问题
解决方法很简单:去搜索python-barcode
原因可能是解释器的版本对不上
一维条码
python-barcode支持的条形码
- EAN-8
- EAN-13
- EAN-14
- UPC-A
- JAN
- ISBN-10
- ISBN-13
- ISSN
- Code 39
- Code 128
- PZN
一维条码的生成(以EAN13、EAN8为例)
import barcode # 引入条码库barcode—python
EAN_13 = barcode.get_barcode_class('ean13') # 获取一维条码EAN13对象
EAN_8 = barcode.get_barcode_class('ean8') # 获取一维条码EAN8对象
# ean13:输入12位数 最后一位会通过校验自动生成
# ean8:输入7位数 最后一位会通过校验自动生成
'''
少输入会报错,多输入只会优先取前面的数
(需要12位,输入了13位,仍取前12位,结果不变)
'''
ean_13 = EAN_13('692015246102') # 生成一维条码
ean_8 = EAN_8('6920152')
ean_13.save('T_1') # 保存条形码(SVG格式)
ean_8.save('T_2')
默认的保存格式都是SVG
生成结果
EAN13
EAN8
校验码的计算:
1-3位:国家代码。690~695为中国,其中693为中外合资;471为台湾,489为香港,958为澳门。其他国家的请查阅EAN国家代码说明。
4-7位:厂商代码
8-12位:产品代码
校验计算步骤如下:
奇数位和 = N1 + N3 + N5 + N7 + N9 + N11 (奇数位数值相加,校验位本身除外)
偶数位和 = N2 + N4 + N6 + N8 + N10 + N12(偶数位的数值相加)
奇数位和 + 偶数位和的三倍 = 结果
C = 结果取个位数
校验码 = 10 – C
例:692015246102
692 表示 国家代码
0152 表示 商代码
46102 表示 产品代码
校验符的计算过程:
奇数位和:6 + 2 + 1 + 2 + 6 + 0 = 17
偶数位和:9 + 0 + 5 + 4 + 1 + 2 = 21
奇数位和 + 偶数位和的三倍:17 + 21 * 3 = 80
C = 0(80的个位数为0)
校验码 = 10 - 0 (若为校验码为10,则视为0)
所以校验码为0
一维条码保存为图片格式(PNG)
import barcode # 引入条码库barcode—python
from barcode.writer import ImageWriter # 引入一位条码库写模块
EAN_13 = barcode.get_barcode_class('ean13') # 获取一维条码EAN13对象
ean2 = EAN_13('692015246102', writer=ImageWriter()) # 添加条码写格式对象
ean2.save('T_2_1')
生成结果