pyBarcode code39添加随机数字

时间:2013-09-17 12:41:24

标签: python

我正在从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编辑:图片链接现已中断。

希望有人可以帮助我。 感谢

3 个答案:

答案 0 :(得分:4)

查看第57行的pyBarcode init function的源代码,barcode.get()函数调用:

return barcode(code, writer)

因此,它会创建一个参数codewriter设置的条形码。

在第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)

参考:http://pythonhosted.org/pyBarcode/barcode.html

答案 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)