Solución:
ctan ahora tiene el paquete qrcode, que no necesita trucos para pdfLaTeX. El valor predeterminado es un cuadrado de 2 cm, pero una opción le permite cambiar la altura. (Y como mencionaste específicamente el ancho, declararé el hecho obvio de que el alto y el ancho del cuadrado son iguales). Por ejemplo, el documento
documentclass{article}
usepackage{qrcode}
begin{document}
default:quad
qrcode{https://www.ctan.org/tex-archive/macros/latex/contrib/qrcode?lang=en}
qquad
1 inch high (and wide):
quad
qrcode[height=1in]{https://www.ctan.org/tex-archive/macros/latex/contrib/qrcode?lang=en}
end{document}
produce la salida
los pst-barcode
paquete funcionará de la siguiente manera:
documentclass{standalone}
usepackage{pst-barcode}
%usepackage{auto-pst-pdf} % uncomment this if used with pdflatex
begin{document}
begin{pspicture}(1in,1in)
psbarcode{test string}{}{qrcode}
end{pspicture}
end{document}
El vacío {}
entre la cadena a codificar, {test string}
y el tipo de código de barras, {qrcode}
, puede contener opciones que se detallan en la documentación del paquete (pero que, por definición, no son necesarias).
El resultado se verá así:
NÓTESE BIEN: Este paquete se basa en pstricks
, que por supuesto usa postscript, por lo que no puedes usar pdflatex
para compilar a menos que descomente el auto-pst-pdf
paquete.
No relacionado con TeX, pero desde que preguntaste sobre un script de Python …
#!/usr/bin/env python
# Generates QR code from given text using Google charts API.
import urllib2
import sys
# change those to your heart's content. See http://code.google.com/apis/chart/docs/gallery/qr_codes.html for more info
ENCODING='utf-8'
IMAGE_WIDTH=200
IMAGE_HEIGHT=200
def make_magic_url(text):
# spaces in the text should be replaced with "+". probably other control symbols need to be handled in special way.
return 'http://chart.apis.google.com/chart?chs=%dx%d&cht=qr&choe=%s&chl=%s' %(IMAGE_WIDTH, IMAGE_HEIGHT, ENCODING, text.replace(" ", "+"))
def makeQR(text, dest):
print make_magic_url(text)
myfig=urllib2.urlopen(make_magic_url(text))
output=open(dest, 'wb')
output.write(myfig.read())
output.close()
text=sys.argv[1]
dest=sys.argv[2]
makeQR(text, dest)
Guardar esto como fetchqr.py
, o algo así. El uso es simple:
python fetchqr.py 'http://tex.stackexchange.com/questions/1429/latex-package-to-generate-qr-codes' '/tmp/myfig.png'
Y obtendrías algo como:
Esto funciona en Python 2.6 en Windows, pero imagino que no debería ser un problema con las versiones anteriores de Python. Sin embargo, no estoy seguro de Python 3.x.
Si está usando algo como un Makefile
para ejecutar su proyecto, entonces debería poder generarlos sobre la marcha según sea necesario; tal vez cree un archivo con cosas en código QR, luego ejecute todas las entradas a través del molinillo de una sola vez.
El código es gratuito para tomar.