Как я могу создать несколько штрих-кодов одновременно, используя Python и pdf417 - PullRequest
0 голосов
/ 08 октября 2019

Я хочу написать несколько сотен штрих-кодов для работы. Я хочу сделать это одновременно с тем, чтобы вручную не запускать скрипт для каждого штрих-кода. Сценарий, который у меня сейчас есть, записывает только один штрих-код, когда мне нужно 400.

from pdf417 import encode, render_image, render_svg

r1 = 0
r2 = 401

def createlist(r1, r2):
    return [item for item in range(r1, r2)]

results = ((createlist(r1, r2)))

results = [str(i) for i in results]

#print(results)


for item in results:
    #print(str(item))
    codes = encode(str(item), columns=3, security_level=2)
    image = render_image(codes, scale=5, ratio=2, padding=5, fg_color="Indigo", bg_color="#ddd")  # Pillow Image object
    image.save('barcode.jpg')

Этот скрипт возвращает только один файл штрих-кода, когда мне нужно вернуть 400 из них. Это Python 3.7 и последняя версия Pdf417. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 08 октября 2019

Ваш скрипт пишет 400 штрих-кодов (фактически 401 штрих-код), но он делает это, записывая их все в одно и то же имя файла, заменяя предыдущий файл штрих-кода каждый раз, когда записывает новый.

Для созданияотдельные файлы, вам просто нужно изменить имя файла. Например:

from pdf417 import encode, render_image, render_svg

r1 = 0
r2 = 401

def createlist(r1, r2):
    return [item for item in range(r1, r2)]

results = ((createlist(r1, r2)))

results = [str(i) for i in results]

#print(results)


for item in results:
    #print(str(item))
    codes = encode(str(item), columns=3, security_level=2)
    image = render_image(codes, scale=5, ratio=2, padding=5, fg_color="Indigo", bg_color="#ddd")  # Pillow Image object
    image.save(f'barcode{item}.jpg')

Это генерирует от barcode0.jpg до barcode400.jpg.

0 голосов
/ 08 октября 2019

Попробуй это. Я полагаю, что вы не перечисляли свой barcode.jpg и записывали в один и тот же файл несколько раз. Вы также захотите сделать до 400, чтобы создать только 400 штрих-кодов.

from pdf417 import encode, render_image, render_svg

r1 = 0
r2 = 400

def createlist(r1, r2):
    return [item for item in range(r1, r2)]

results = ((createlist(r1, r2)))

results = [str(i) for i in results]

#print(results)


for item in results:
    #print(str(item))
    codes = encode(str(item), columns=3, security_level=2)
    image = render_image(codes, scale=5, ratio=2, padding=5, fg_color="Indigo", bg_color="#ddd")  # Pillow Image object
    image.save('barcode{0}.jpg'.format(item))
...