2012-08-10 73 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