генератор последовательного QR-кода

Мне нужен генератор QR-кода, который генерирует 21500 уникальных серийных номеров со штампом QR и экспортирует каждые 1000 кодов в один файл PDF, поэтому у нас будет 22 файла PDF. Как я могу это сделать?


person ronymattar    schedule 10.08.2012    source источник


Ответы (2)


Некоторое время назад я сделал нечто подобное, используя Python, qrencode и LaTeX. Я изменил свой старый код, чтобы он соответствовал вашим потребностям. Я предположил, что вам нужны страницы формата А4. Содержимое QR-кодов представляет собой строки ASCII от PMY00001 до PMY22000.

#!/usr/bin/env python
import random, base64, string, os, sys

width=7.7
height=7

print "\\documentclass[a4paper,10pt]{report}"
print "\\usepackage[absolute]{textpos}"
print "\\usepackage{nopageno}"
print "\\usepackage{graphicx}"
print "\\setlength{\\TPHorizModule}{1mm}"
print "\\setlength{\\TPVertModule}{1mm}"
print "\\textblockorigin{10mm}{10mm}"
print "\\setlength{\\parskip}{0pt}"
print "\\setlength{\\parindent}{0pt}"
print "\\setlength{\\fboxsep}{0pt}"
print "\\setlength{\\tabcolsep}{0pt}"
print "\\renewcommand{\\baselinestretch}{0.8}"
print ""
print "\\begin{document}"

idx=int(sys.argv[1])

for i in range(0,25):
    for j in range(0,40):
        b = 'PMY%05d' % idx
        f = os.path.join("codes", b + ".png")
        ff = os.popen("qrencode -lH -o " + f, "w")
        ff.write(b)
        ff.close()
        print "\\begin{textblock}{" + str(width) + "}(" + str(width * i) + "," + str(height * j) + ")"
        print "\\includegraphics[height="+str(height)+"mm]{" + f + "}"
        print "\\end{textblock}"
        idx=idx+1
print "\\end{document}"

Чтобы использовать его, напишите его как, например. qrgen.py, добавьте разрешения на выполнение chmod +x qrgen.py, создайте каталог codes: mkdir codes и запустите ./qrgen.py 0 >codes.tex для создания документа codes.tex, а затем pdflatex codes.tex для создания файла codes.pdf. Аргумент 0 — это начальный серийный номер.

Чтобы получить 22 таких листа, лучше всего использовать цикл:

for ((i=0;i<22;i++)); do ../qrgen.py $((i*1000+1)) >$i.tex; pdflatex $i.tex; done

Конечно, это не оптимальное решение - вы, вероятно, можете получить гораздо более быстрое решение, используя привязки библиотеки Python qrencode вместо запуска внешней программы qrencode и некоторой библиотеки для создания PDF-файлов из Python напрямую вместо использования pdflatex.

person Michał Wróbel    schedule 10.08.2012

Вы можете написать сценарий на выбранном вами языке, который использует генератор QR-кода Google в цикл для создания всех кодов, которые вам понадобятся, и сохранения их в формате PDF. Вам нужно будет предоставить более подробную информацию, если вам нужен более конкретный ответ.

person Kenny Bania    schedule 10.08.2012
comment
Есть ли какой-то определенный язык, на котором вы хотите это написать? Я запутался, что именно вы хотите. - person Kenny Bania; 10.08.2012
comment
Здравствуйте, спасибо за ваш ответ. Если вы отметите: popemeetyouth.org/images/card.jpg Это карточка, которую я хочу распечатать , мне просто нужно предоставить печатному станку серийные номера и QR-коды, серийные номера должны быть от PMY00001 до PMY21500 - person ronymattar; 10.08.2012