我正在从alpha数值创建一个.png条形码。我正在使用Python和pyBarcode模块。问题是,当我使用code39时,它会在末尾添加一个随机数字。我测试的其他条形码格式似乎也给出了同样的问题。
这是我的代码段
unique_filename = uuid.uuid4()
barcode_writer = ImageWriter()
ean = barcode.get('code39', "Testing-One-two-1-2",barcode_writer)
filename = ean.save(BARCODE_DIR +str(unique_filename))
创建的.png:
非OP编辑:图片链接现已中断。
希望有人可以帮助我。 感谢
答案 0 :(得分:4)
查看第57行的pyBarcode init function的源代码,barcode.get()函数调用:
return barcode(code, writer)
因此,它会创建一个参数code
和writer
设置的条形码。
在第52行的codex.py文件中,默认情况下使用checksum参数True创建code39类:
def __init__(self, code, writer=None, add_checksum=True):
根据lnmx,如果你不想要它,你必须明确设置校验和。
答案 1 :(得分:1)
Peter M是对的,额外的角色是校验和。您可以通过指定add_checksum=False
:
ean = barcode.get('code39', "Testing-One-two-1-2", barcode_writer, add_checksum=False)
答案 2 :(得分:1)
我尝试将参数'add_checksum = False'与'barcode.get()'一起使用,并引发了错误:
barcode_writer = ImageWriter()
ean = barcode.get('code39', "Testing-One-two-1-2",barcode_writer, add_checksum=False)
TypeError Traceback(最近一次调用 最后)in() 1 barcode_writer = ImageWriter() ----> 2 ean = barcode.get('code39',“Testing-One-two-1-2”,barcode_writer,add_checksum = False)
TypeError:get()得到了一个意外的关键字参数'add_checksum'
所以我在模块参考页面(https://pythonhosted.org/pyBarcode/codes.html)上找到了你可以指定条形码的类型,将它作为一个类使用,然后你可以提供参数'add_checksum = False'。
barcode_writer = ImageWriter()
ean = barcode.codex.Code39( "Testing-One-two-1-2", barcode_writer, add_checksum=False)
unique_filename = uuid.uuid4()
filename = ean.save(unique_filename)