2

我正在从 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 编辑​​:图像链接现已损坏。

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

4

3 回答 3

4

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

return barcode(code, writer)

所以它创建一个带有参数codewriter设置的条形码。

在第 52 行的codex.py文件中,默认使用校验和参数 True 创建 code39 类:

def __init__(self, code, writer=None, add_checksum=True):

根据 lnmx,如果您不想要它,您必须明确设置校验和。

于 2013-09-17T13:03:51.757 回答
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

于 2013-09-17T12:58:31.430 回答
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 (last last call last) in () 1barcode_writer = ImageWriter() ----> 2 ean =barcode.get('code39', "Testing-One-two-1-2",barcode_writer, add_checksum=False )

类型错误: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)
于 2018-02-26T18:28:52.150 回答