0

QR スタンプ付きの 21500 の一意のシリアル番号を生成し、1000 コードごとに 1 つの PDF ファイルにエクスポートする QR コード ジェネレーターが必要なので、22 個の PDF ファイルが作成されます。どうやってやるの?

4

2 に答える 2

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を作成し、実行してドキュメントを生成し、次にファイルを生成するように記述します。0引数は、開始シリアル番号です。codesmkdir codes./qrgen.py 0 >codes.texcodes.texpdflatex codes.texcodes.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

于 2012-08-10T15:25:15.520 に答える
0

Google の QR コード ジェネレーターをループで使用して必要なすべてのコードを生成し、それらを pdf に保存するスクリプトを選択した言語で作成できます。より具体的な回答が必要な場合は、詳細を提供する必要があります。

于 2012-08-10T14:45:28.643 に答える