我希望能够在我的 LaTeX 文档中生成二维码,但一直找不到解决方案。可以使用以下命令
\qr[1in]{Your text to be QR encoded here}
可选参数是正方形的宽度。我将使用它为学生在考试的每一页上添加条形码,这样一旦他们交上作业,就可以扫描作业并以电子方式进行分类。
有人知道这样的包吗?我不介意使用外部脚本(例如 python)来生成我可以包含的图形。
答案1
ctan 现在有包二维码,这不需要任何针对 pdfLaTeX 的技巧。默认值是 2cm 正方形,但有一个选项允许您更改高度。(既然您特别提到了宽度,我会说明一个显而易见的事实,即正方形的高度和宽度相等。)例如,文档
\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}
产生输出
答案2
这pst-barcode
包裹将按如下方式工作:
\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}
{}
要编码的字符串{test string}
和条形码类型之间的空格{qrcode}
可以包含包文档中详细说明的选项(但根据定义,这些选项不是需要的)。
结果将如下所示:
注意:这个包依赖于pstricks
,当然它使用了 postscript,所以除非你取消注释该包,否则你不能用pdflatex
它来编译。auto-pst-pdf
答案3
与 TeX 无关,但既然您询问了 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)
将其另存为fetchqr.py
或类似名称。使用方法很简单:
python fetchqr.py 'http://tex.stackexchange.com/questions/1429/latex-package-to-generate-qr-codes' '/tmp/myfig.png'
你会得到类似这样的结果:
这在 Windows 下的 Python 2.6 上有效,但我想这在旧版 Python 上应该不会有问题。不过不确定 Python 3.x 是否有效。
如果您使用类似的东西Makefile
来运行您的项目,那么您应该能够根据需要动态生成这些内容 - 也许创建一个包含二维码内容的文件,然后一次性通过研磨机运行所有条目。
该代码可免费获取。
答案4
这并不是您真正想要的,但生成二维码的一种简单方法是使用 Google 的图表工具:https://developers.google.com/chart/infographics/docs/qr_codes
然后您可以使用该包包含该图像graphicx
。