Difference between revisions of "Barcodes"

From Wiki
Jump to navigation Jump to search
(new)
 
m (→‎Zint module: - update zint names, see manual: https://www.zint.org.uk/manual/chapter/4)
 
(4 intermediate revisions by one other user not shown)
Line 6: Line 6:
  
 
* Download `zint` from https://www.zint.org.uk (Windows, Linux) or install it with [https://brew.sh Homebrew] or [https://www.macports.org/install.php MacPorts] (MacOS).
 
* Download `zint` from https://www.zint.org.uk (Windows, Linux) or install it with [https://brew.sh Homebrew] or [https://www.macports.org/install.php MacPorts] (MacOS).
* MkIV: The `zint` executable must be in your `PATH`.
+
* '''MkIV''': The `zint` executable must be in your `PATH`.
* LMTX: Copy or symlink the zint library into `$TEXROOT/tex/texmf-$ARCH/bin/lib/luametatex/zint` (you must create that path); on Windows, this is `libzint.dll`, on Linux and MacOS `libzint.so` (on MacOS the actual file name is `libzint.dylib`, but LuaMetaTeX expects `.so`). Then run `mtxrun --generate` to update the file database.
+
* '''LMTX''': LuaMetaTeX uses the library. On Windows, that’s `libzint.dll`, on Linux and MacOS `libzint.so` (on MacOS the actual file name is `libzint.dylib`, but LuaMetaTeX expects `.so`).
 +
** Find that file, it should be in `/usr/local/lib` (Linux, Homebrew) or `/opt/local/lib` (MacPorts).
 +
** Create the path `$TEXROOT/tex/texmf-$ARCH/bin/lib/luametatex/zint`.
 +
** Copy or symlink the library into it (on MacOS remember naming it `libzint.so`).
 +
** Run `mtxrun --generate` to update the file database.
  
 
<texcode>
 
<texcode>
 
\usemodule[zint]
 
\usemodule[zint]
\barcode[alternative=isbn, text=9783865419026, width=4cm]
+
\barcode[alternative=isbnx, text=9783865419026, width=4cm]
\barcode[alternative=qr code, text={https://wiki.contextgarden.net}, width=3cm]
+
\barcode[alternative=qrcode, text={https://wiki.contextgarden.net}, width=3cm]
 
</texcode>
 
</texcode>
  
 
Zint can produce about 40 different code types (“alternatives“). Try the [https://www.zint.org.uk/manual/chapter/4 name] (but lowercase with spaces) or look into the {{src|libs-imp-zint.lua|source}}
 
Zint can produce about 40 different code types (“alternatives“). Try the [https://www.zint.org.uk/manual/chapter/4 name] (but lowercase with spaces) or look into the {{src|libs-imp-zint.lua|source}}
 
  
 
== Barcodes module ==
 
== Barcodes module ==
Line 25: Line 28:
 
== barcode.lua ==
 
== barcode.lua ==
  
In 2012, user topskip published a small LuaTeX library on [https://tex.stackexchange.com/questions/50707/how-to-generate-ean-barcodes-with-tikz-or-metapost#50751 Stack Exchange]. It can only create EAN codes.
+
In 2012, [[User:Patrick_Gundlach|Patrick]] published a small LuaTeX library on [https://tex.stackexchange.com/questions/50707/how-to-generate-ean-barcodes-with-tikz-or-metapost#50751 Stack Exchange]. It can only create EAN codes, but it has no dependencies and doesn’t even use MetaPost.
  
 
<texcode>
 
<texcode>
Line 33: Line 36:
 
\luabarcode{9783865419026}
 
\luabarcode{9783865419026}
 
</texcode>
 
</texcode>
 +
 +
[[Category:Graphics]]

Latest revision as of 14:00, 20 February 2022

< Graphics

How to create barcodes from within ConTeXt (MkIV/LMTX)?

Zint module

  • Download zint from https://www.zint.org.uk (Windows, Linux) or install it with Homebrew or MacPorts (MacOS).
  • MkIV: The zint executable must be in your PATH.
  • LMTX: LuaMetaTeX uses the library. On Windows, that’s libzint.dll, on Linux and MacOS libzint.so (on MacOS the actual file name is libzint.dylib, but LuaMetaTeX expects .so).
    • Find that file, it should be in /usr/local/lib (Linux, Homebrew) or /opt/local/lib (MacPorts).
    • Create the path $TEXROOT/tex/texmf-$ARCH/bin/lib/luametatex/zint.
    • Copy or symlink the library into it (on MacOS remember naming it libzint.so).
    • Run mtxrun --generate to update the file database.
\usemodule[zint]
\barcode[alternative=isbnx, text=9783865419026, width=4cm]
\barcode[alternative=qrcode, text={https://wiki.contextgarden.net}, width=3cm]

Zint can produce about 40 different code types (“alternatives“). Try the name (but lowercase with spaces) or look into the source

Barcodes module

The old module uses PStricks and is deprecated. (Source)


barcode.lua

In 2012, Patrick published a small LuaTeX library on Stack Exchange. It can only create EAN codes, but it has no dependencies and doesn’t even use MetaPost.

\loadluafile[barcode]
\define[1]\luabarcode{\directlua{generate_barcode_lua("#1")}}

\luabarcode{9783865419026}