GitPedia

Barcode

barcode generation for nodejs

From samt·Updated September 21, 2025·View on GitHub·

* [Code39](http://en.wikipedia.org/wiki/Code39) * [Codabar](http://en.wikipedia.org/wiki/Codabar) * [Code128](http://en.wikipedia.org/wiki/Code128) * [UPC-A](http://en.wikipedia.org/wiki/Universal_Product_Code) * [UPC-E](http://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E) * [EAN-13](http://en.wikipedia.org/wiki/EAN) The project is written primarily in JavaScript, distributed under the MIT License license, first published in 2012. Key topics include: barcode-generator, javascript, upc.

barcode generator Build Status

Generate 1D and 2D barcodes

Supported 1D types

Supported 2D types

Requirements

Installing

npm install barcode

Usage

Set it up and specify your type and options. The following 3 are the only
required ones.

javascript
var barcode = require('barcode'); var code39 = barcode('code39', { data: "it works", width: 400, height: 100, });

Next choose from the three methods below how you want to output your barcode.

Stream

Get a stream of the final image data. you can collect this and save out a new
PNG (default type), pipe it elsewhere, or save it to a CDN.

javascript
code39.getStream(function (err, readStream) { if (err) throw err; // 'readStream' is an instance of ReadableStream readStream.pipe(CdnWriteStream); });

File to disk

Save an image out to the file system, pretty simple. Just be sure to specify
your outfile.

javascript
var outfile = path.join(__dirname, 'imgs', 'mycode.png') code39.saveImage(outfile, function (err) { if (err) throw err; console.log('File has been written!'); });

Base64 encoded img src

Often times, barcodes are single use for a single print or whatever. With this
method, we can create one on the fly and just send the base64 encoded image to
the browser through the HTML.

javascript
code39.getBase64(function (err, imgsrc) { if (err) throw err; // if we're using HTTP or another framework res.end('<img src="' + imgsrc + '">'); });

Refactor

Much of the underlying code for the generation is being rewritten, however the
API will remain the same. As a rule, anything new will have to be testable.

Things todo:

  • Move all checksums and ECC to a module in lib/utils
  • Use the new barcode generation class: Barcode2D.js
  • Remove uses of Barcode1D and in-place image generation
  • Create separate functions for generating sequences

In the future:

  • Abstract drawing to be able to draw with gm or output html (bars with css
    or canvas)

License

The MIT License (MIT)

Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub →

This article is auto-generated from samt/barcode via the GitHub API.Last fetched: 6/14/2026