png2lwxl

png2lwxl is a node.js library to convert png's to a label printer's raw data

Usage no npm install needed!

<script type="module">
  import png2lwxl from 'https://cdn.skypack.dev/png2lwxl';
</script>

README

node-png2lwxl

Node version of pbm2lwxl using png as input format. It takes a png as input file and spits out prn-file which can be sent to your label printer.

It is based pbm2lwxl.c written by Mark Whitis

Install

You can install png2lwxl using the Node Package Manager (npm):

npm install png2lwxl

Simple example

var png2lwxl = require('png2lwxl');
var fs = require('fs');

png2lwxl.convert(imgPath, function (err, printData) {
    if(err) return console.log(err);

    fs.writeFile(__dirname + '/test.prn', printData, function (err) {
        if(err) return console.log(err);
        console.log("file written");
    });
});

Just send the test.prn file to your label printer as raw data.

Label printers can only print black or white, no grayscale, so I used a threshold value when sending color or gray pixels. The thresshold can be set using the blackwhiteThreshold-option.

If you want to rotate your image 90 degrees, you can set the option landscape to true:

var png2lwxl = require('png2lwxl');
var fs = require('fs');

var imgPath = __dirname + '/test.png';
png2lwxl.convert(imgPath, {
    landscape: true,          // rotates image 90 degrees
    blackwhiteThreshold: 110  // 0-256: the higher the value, the more pixels will be treated as black
}, function (err, printData) {
    if(err) return console.log(err);
    console.log(printData);

    fs.writeFile(__dirname + '/test.prn', printData, function (err) {
        if(err) return console.log(err);
        console.log("file written");
    });
});