@magneds/hapi-plugin-barcode

1.0.6 • Public • Published

Hapi Barcode Plugin

Generate bar-/QR codes on the fly from a webserver running Hapi

Installation

$ npm install --save @magneds/hapi-plugin-barcode

Usage

As the name might have suggested already, this package is a plugin for the Hapi framework, simply registering the package as plugin will suffice.

Using @magneds/hapi-server

const HapiServer = require('@magneds/node-hapi-server');
const HapiPluginBarcode = require('@magneds/hapi-plugin-barcode');

new HapiServer()
	.configure({ host: 'localhost', port: 3000 })
	.plugin(HapiPluginBarcode)
	.start()
	.then(() => console.log(`Running @${server.info.uri}`));

Using hapi

const Hapi = require('hapi');
const HapiPluginBarcode = require('@magneds/hapi-plugin-barcode');

const server = Hapi.server({ host: 'localhost', port: 3000 });

const init = async () => {
	await server.register(HapiPluginBarcode);
	await server.start();

	console.log(`Running @${server.info.uri}`);
};

init();

API

The barcode plugin registers two routes to do all the heavy lifting, for the examples below we'll assume the routes are not prefixed to reside in another location.

/barcode/qr/{content}

Generate a QR code with the data provided in {content}. Note that as the content is part of the path, the data must be properly url encoded (e.g. using JavaScript encodeURIComponent, PHP urlencode, or the equivalent in your favorite language)

http://localhost:3000/barcode/qr/hello%20world

Parameters

There are several settings that can be overridden, all of these can be provided as query parameters.

http://localhost:3000/barcode/qr/hello%20world?background=%23f90&color=red&width=1000&ecl=Q
option default description note
padding 4 white space padding 0 for no padding
width 256 width in pixels if no height is specified, it will be set to width
height 256 height in pixels if no width is specified, it will be set to height
color currentColor foreground color any valid CSS color value (remember # has a special meaning in URLs so it must be escaped (%23))
background transparent background color any valid CSS color value (remember # has a special meaning in URLs so it must be escaped (%23))
ecl H error correction level L, M, H, Q

/barcode/{type}/{content}

Generate a barcode of {type} with the specified data provided in {content}

Valid types

type description
codabar Codabar
code11 Code 11
code39 Code 39
code93 Code 93
code128 Code 128
ean8 EAN 8
ean13 EAN 13 (International Article Number)
std25 Standard 2 of 5 (Industrial 2 of 5)
int25 Interleaved 2 of 5

Specifying any invalid type will result in a 404 - Type "${type}" not found response

Parameters

There are several settings that can be overridden, all of these can be provided as query parameters.

http://localhost:3000/barcode/code39/123456789098?height=30&color=red
option default description note
width 160 width in pixels
height 50 (bar) height in pixels
color currentColor foreground color any valid CSS color value (remember # has a special meaning in URLs so it must be escaped (%23))
background transparent background color any valid CSS color value (remember # has a special meaning in URLs so it must be escaped (%23))
text false include the code as text not as pretty as one might expect

Readme

Keywords

none

Package Sidebar

Install

npm i @magneds/hapi-plugin-barcode

Weekly Downloads

0

Version

1.0.6

License

MIT

Unpacked Size

21.7 kB

Total Files

16

Last publish

Collaborators

  • daanvanham
  • rogier.spieker
  • zogot