This package provides a flexible way to generate ZPL (Zebra Programming Language) label templates with dynamic sections. It allows defining text sections with specific sizes, origins, paddings, and orientations, then populating them with structured data.
Ensure you have Node.js installed, then install the package:
npm install zpl-js-helper
Import the required classes from the package:
const {
Origin,
Size,
Template,
TextSection,
LabelBuilder,
Padding,
} = require("zpl-js-helper");
Create a new template and define the sections:
const template = new Template(50, 100);
const size = new Size(200, 400);
const padding = new Padding(20, 20, 20, 20);
const sections = [];
//create the sections.
sections.push(new TextSection('0', size, new Origin(0, 0), 'orderNumber', 'all', 2, padding));
sections.push(new TextSection('C', size, new Origin(400, 0), 'address', 'all', 2));
sections.push(new TextSection('0', size, new Origin(0, 200), 'name', 'all', 2, padding, 'landscape', "C", 20));
sections.push(new TextSection('C', size, new Origin(200, 400), 'orderDate', 'all', 2, padding, 'landscape', "C"));
//Add the sections to your template.
sections.forEach((section) => {
template.addZPLSection(section);
});
Define records that will populate the label template:
const sectionRecords = [
{
name: ["John Smtih"],
orderDate: ["20 March 2025"],
address: ["10 High St, New State, 2893"],
orderNumber: ["#987234798"],
}
];
Pass the template and records to the LabelBuilder
:
const labelBuilder = new LabelBuilder(template, sectionRecords);
const zplOutput = labelBuilder.generateZPL();
console.log(zplOutput);
- Define label templates with text sections, sizes, and padding.
- Support for different text orientations (portrait/landscape).
- Dynamically populate templates with structured data.
- Generate ZPL output for label printers.
- An attempt at auto-scaling and wrapping text to prevent overflow from predefined sections (Uses the '0' font style).
This package is licensed under MIT.