io-barcode is a simple way to create different types of barcodes on server or client.
This started as a fork of the Johan Lindell's JsBarcode project. It adds the following functionality:
- Isomorphic barcode generation on client and server.
- Node support through
node-canvas
. - Packaged with UMD support on client side.
- Modular design.
- Returns a canvas element.
- Removed direct jQuery integration.
- Custom label support (Instead of the encoded data string).
Demo and examples
Barcode Generator
Supported barcodes
- CODE128 (B or C)
- EAN (13)
- UPC-A
- CODE39
- ITF (Interleaved 2 of 5)
- ITF14
- Pharmacode
Installation
With npm:
npm install io-barcode
If you are not using Node, browserify, webpack or similar npm-based systems, download the minified UMD bundle for browsers only.
Usage
ioBarcode.TYPE(code, opts)
Create a new barcode. Returns a canvas element.
TYPE
- the type of barcode, can be:
- CODE128B
- CODE128C
- EAN
- UPC
- CODE39
- ITF
- ITF14
- Pharmacode
code
- the string to encodeopts
- additional formatting, default options are:
{
width: 2,
height: 100,
quite: 10,
displayValue: false,
font: 'monospace',
textAlign: 'center',
fontSize: 12,
fontWeight: 'bold',
backgroundColor: '',
lineColor: "#000",
customLabel:null,
}
Example on server side:
var fs = require('fs')
var ioBarcode = require("io-barcode")
var canvas = ioBarcode.CODE128B('Javascript is fun!', {
width: 1,
height: 25
})
var stream = canvas.pngStream()
stream.pipe(fs.createWriteStream('./barcode.png'))
Example on the client side:
var ioBarcode = require("io-barcode")
var canvas = ioBarcode.CODE128B('Javascript is fun!', {
width: 1,
height: 25
})
document.body.appendChild(canvas)
var img = new Image()
img.src = canvas.toDataURL('image/png')
document.body.appendChild(img)
Running tests
Run npm test
and visit http://localhost:3000 in your favorite browser.