metafloor / bwip-js

Barcode Writer in Pure JavaScript
Other
2.09k stars 301 forks source link

backgroundcolor with # doesn't work or throw an error #329

Open jaisal1024 opened 6 months ago

jaisal1024 commented 6 months ago

When i call the toBuffer API like so:

  const buffer = await bwipjs.toBuffer({
    bcid: 'code128',
    text: '5555563151499218',
    includetext: true,
    textxalign: 'center',
    backgroundcolor: '#ffffff',

The generated PNG is transparent, not white.

To fix it i have to call the API like so:

  const buffer = await bwipjs.toBuffer({
    bcid: 'code128',
    text: '5555563151499218',
    includetext: true,
    textxalign: 'center',
    backgroundcolor: 'ffffff',

and it adds a white background. The backgroundcolor: '#ffffff', should either throw an error or work as its really confusing to figure out what is going on!

metafloor commented 6 months ago

This works for me:

const bwipjs = require('bwip-js');
console.log(bwipjs.BWIPJS_VERSION);   // 4.3.0 (2024-03-12)
(async function() {
    let buf = await bwipjs.toBuffer({
            bcid:'code128',
            text: '5555563151499218',
            includetext: true,
            textxalign: 'center',
            backgroundcolor: '#abcdef',
            padding: 5,
        });

    require('fs').writeFileSync('bg.png', buf);
})();

image

I suspect you are using an out of date version.