2012-08-10 106 views
0

我需要一个二维码生成器,生成21500唯一的序列号与一个QR邮票,并导出一个PDF文件中的每1000个代码,所以我们将有22 PDF文件。 我该怎么做?连续二维码生成器

回答

0

前一段时间我做了使用Python,qrencode和LaTeX类似的事情。我修改了我的旧代码以适合您的需求。我假设你想要A4页面。 QR码的内容是PMY00001至PMY22000 ASCII字符串。

#!/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可能得到更快的一个程序和一些库,用于直接从Python生成PDF,而不是使用pdflatex

0

您可以在您所选择的语言,使用Google's QR code generator在循环中产生,你需要和它们保存到一个PDF中的所有代码编写的脚本。如果您需要更具体的答案,则需要提供更多详细信息。

+0

你好,谢谢你的回复。 – ronymattar 2012-08-10 15:04:49

+0

是否有你想要写的特定语言?我很困惑你想要什么。 – 2012-08-10 15:17:39

+0

你好,谢谢你的回复。 如果检查:http://popemeetyouth.org/images/card.jpg 这卡我想打印,我只需要提供印刷机用的序列号和QR码,序列号应该是PMY00001直到PMY21500 – ronymattar 2012-08-10 15:21:14