我正在寻找一个好的 LaTeX 包来生成一维条形码,它具有以下属性。
- 它不需要任何外部脚本或互联网连接即可工作。
- 它可以轻松编译为 pdf(因此无需 pstricks 黑客技术)。
有这样的包吗?如果它可以生成二维码,那就更好了。
答案1
我想尝试解决这个问题,因为我看到过许多基于专用字体的解决方案,我想:“\vrule
既然TeX已经很好了,为什么还要使用字体呢?”。因此(用纯文本来说):
\def\barcode#1#2#3#4#5#6#7{\begingroup%
\dimen0=0.1em
\def\stack##1##2{\oalign{##1\cr\hidewidth##2\hidewidth}}%
\def\0##1{\kern##1\dimen0}%
\def\1##1{\vrule height10ex width##1\dimen0}%
\def\L##1{\ifcase##1\bc3211##1\or\bc2221##1\or\bc2122##1\or\bc1411##1%
\or\bc1132##1\or\bc1231##1\or\bc1114##1\or\bc1312##1\or\bc1213##1%
\or\bc3112##1\fi}%
\def\R##1{\bgroup\let\next\1\let\1\0\let\0\next\L##1\egroup}%
\def\G##1{\bgroup\let\bc\bcg\L##1\egroup}% reverse
\def\bc##1##2##3##4##5{\stack{\0##1\1##2\0##3\1##4}##5}%
\def\bcg##1##2##3##4##5{\stack{\0##4\1##3\0##2\1##1}##5}%
\def\bcR##1##2##3##4##5##6{\R##1\R##2\R##3\R##4\R##5\R##6\11\01\11\09%
\endgroup}%
\stack{\09}#1\11\01\11\L#2%
\ifcase#1\L#3\L#4\L#5\L#6\L#7\or\L#3\G#4\L#5\G#6\G#7%
\or\L#3\G#4\G#5\L#6\G#7\or\L#3\G#4\G#5\G#6\L#7%
\or\G#3\L#4\L#5\G#6\G#7\or\G#3\G#4\L#5\L#6\G#7%
\or\G#3\G#4\G#5\L#6\L#7\or\G#3\L#4\G#5\L#6\G#7%
\or\G#3\L#4\G#5\G#6\L#7\or\G#3\G#4\L#5\G#6\L#7%
\fi\01\11\01\11\01\bcR}
\barcode 7046260816138
\bye
看起来像:
答案2
随着pst-barcode
-包裹你可以制作各种条形码。例如,
\documentclass{minimal}
\usepackage{pst-barcode}
\begin{document}
\begin{pspicture}(3.5,1.2in)
\psbarcode{12345678}{includetext inkspread=0.5}{ean8}
\end{pspicture}
\end{document}
缺点当然是你必须经过latex
→→dvips
路线ps2pdf
进行编译,所以它不能满足你的要求(2)。
[我自己没用过pst-barcode
,但我刚刚看到Michael Underwood 的回答并认为它也适用于此处,并且可能对某些人有用。
答案3
看一下排版条形码在 TeX Catalogue Online 中。它列出了一些软件包。
答案4
有以下ean13isbn
包:http://www.ctan.org/pkg/ean13isbn。然后是 GS1 包:http://www.ctan.org/pkg/gs1。两者都可以生成 EAN8 和 EAN13。但我完全失望的是,这两个包都使用位图字体(而不是轮廓字体)来表示条形码下方的数字。如果在 GS1 包的情况下,我关闭了 ocrb 字体的使用,结果看起来很糟糕。数字太接近条形码了。ean13isbn 包似乎没有很多选项。而且我真的不知道如何设置不同的字体。然而,对于这两个包,条形码本身不是位图,就打印质量而言,这应该是件好事。
然后我们有这个在线 ISBN 条形码生成器:http://bookow.com/resources.php。这是我目前发现的最好的一个,因为 (1) 它生成带有矢量图形的 PDF,并且 (2) PDF 包含文本作为轮廓。PDF 中没有任何像素。但是,文本字体未嵌入 PDF 中。如果有人剪掉 ISBN 文本,我敢肯定它可以被滥用于 EAN13 代码。