Barcode Bakery is library written in Node.JS, .NET Standard and PHP which allows you to generate barcodes on the fly on your server for displaying or saving.
The library has minimal dependencies in each language in order to be supported on a wide variety of web servers.
The library is available for free for non-commercial use; however you must purchase a license if you plan to use it in a commercial environment.
Installation
There are two ways to install our library:
- With composer, run the following command:
$ npm install barcode-bakery-1d
- Or, download the library on our website, and follow our developer's guide.
Requirements
- node-canvas. Version 2+
- node >= 14+
Example usages
For a full example of how to use each symbology type, visit our API page.
Displaying a Code 128 on the screen
import { createServer } from 'http';
import { BCGColor, BCGDrawing, BCGFont } from 'barcode-bakery-common';
import { BCGcode128 } from 'barcode-bakery-1d';
import { parse } from 'querystring';
const defaultText = 'abc123';
let font = new BCGFont('Arial', 18);
let colorBlack = new BCGColor(0, 0, 0);
let colorWhite = new BCGColor(255, 255, 255);
let getDrawing = function (text) {
let drawException = null,
barcode = null;
try {
// Barcode Part
let code = new BCGcode128();
code.setScale(2); // Resolution
code.setThickness(30); // Thickness
code.setBackgroundColor(colorWhite); // Color of spaces
code.setForegroundColor(colorBlack); // Color of bars
code.setFont(font); // Font (or 0)
code.setStart(null);
code.setTilde(true);
code.parse(text); // Text
barcode = code;
} catch (exception) {
drawException = exception;
}
let drawing = new BCGDrawing(barcode, colorWhite);
if (drawException) {
drawing.drawException(drawException);
}
return drawing;
};
createServer(function (request, response) {
// Don't forget to sanitize user inputs.
let drawing = getDrawing(parse(request.url).query?.toString() || defaultText);
drawing.toBuffer(BCGDrawing.ImageFormat.Png, function (err, buffer) {
response.writeHead(200, { 'Content-Type': 'image/png' });
response.end(buffer);
});
}).listen(8124);
console.log('Server running at http://127.0.0.1:8124/');
Saving the image to a file
Replace the last lines of the previous code with the following:
var drawing = new BCGDrawing(code, colorWhite);
drawing.save('image.png', BCGDrawing.ImageFormat.Png, function() {
console.log('Done.');
});
This will generate the following:
Sync methods
Both save
and toBuffer
have counterparts acting synchronously: saveSync
and toBufferSync
.
Tests
Simply type npm test
to run the tests.
Supported types
- Codabar
- Code 11
- Code 128
- Code 39
- Code 39 Extended
- Code 93
- EAN-13
- EAN-8
- Interleaved 2 of 5
- ISBN-10 / ISBN-13
- MSI Plessey
- Other (Custom)
- Standard 2 of 5
- UPC Extension 2
- UPC Extension 5
- UPC-A
- UPC-E