QR スタンプ付きの 21500 の一意のシリアル番号を生成し、1000 コードごとに 1 つの PDF ファイルにエクスポートする QR コード ジェネレーターが必要なので、22 個の PDF ファイルが作成されます。どうやってやるの?
2 に答える
少し前に、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
を作成し、実行してドキュメントを生成し、次にファイルを生成するように記述します。0引数は、開始シリアル番号です。codes
mkdir codes
./qrgen.py 0 >codes.tex
codes.tex
pdflatex codes.tex
codes.pdf
このようなシートを22枚取得するには、ループを使用するのが最適です。
for ((i=0;i<22;i++)); do ../qrgen.py $((i*1000+1)) >$i.tex; pdflatex $i.tex; done
もちろん、これは最適なソリューションではありません。外部qrencode
プログラムを起動する代わりにPython qrencodeライブラリバインディングを使用し、を使用する代わりにPythonから直接PDFを生成するためのライブラリを使用すると、おそらくはるかに高速なソリューションを取得できますpdflatex
。
Google の QR コード ジェネレーターをループで使用して必要なすべてのコードを生成し、それらを pdf に保存するスクリプトを選択した言語で作成できます。より具体的な回答が必要な場合は、詳細を提供する必要があります。