take part in this little survey
zpl-rest provides the following
- REST-API to manage labels (written in ZPL), printer and to print these labels
- a simple graphical user interface for this REST-API
- you can use mustache in your ZPL-Code
- you can preview the result of your ZPL-Code
- you can test print your ZPL-Code
- you can review and reprint printjobs
- you can use placeholder in your ZPL labels (${varname}) which will be replaced through the API e.g.:
^XA
^LH0,0
^MTT
^A0N,36,36
^FO236,71
^FD${sometext}^FS
^XZ
which you can replace with the following POST-request to /rest/print:
{
printer:"printer id",
label:"id of the label",
data : {
sometext: "hello world"
}
}download this repo und run npm start
- overview page with statistics

- reprint page, here you can print / review old printjobs

- label page, with label preview

| Method | Path | parameter | description |
|---|---|---|---|
| get | /rest/printer | none | list of all printers |
| get | /rest/label | none | list of all labels |
| get | /rest/jobs | none | list of all printjobs |
| get | /rest/preview | ?printer=printer_id&label=label_id(&zpl=...) | generates a preview of the label using this service as base64 |
| post | /rest/print | {printer:"printer_id...",label:"label_id...", data: {...}} | actual print |
| post | /rest/reprint/(:jobid) | ({printer:"printer_id...", zpl:"..."}) | reprint, change printer if wanted or ZPL-code |
| post | /rest/preview | {printer:"printer_id...",label:"label_id..."(,zpl:"...")} | generates a preview of the label using this service as base64 |
| post | /rest/printer | to add : {address:"..",name:"...",density:"..."} for update {_id:"...",address:"..",name:"...",density:"..."} | add or update a printer |
| post | /rest/label | to add : {name:"...",zpl:"...",width:"...",height:"..."} for update {_id:"...",name:"...",zpl:"...",width:"...",height:"..."} | add or update a label |
| delete | /rest/printer/(:printerid) | none | removes a printer with the given id |
| delete | /rest/label/(:labelid) | none | removes a label with the given id |
you can edit the config.js with following options:
| Option | Type | description | Default |
|---|---|---|---|
| port | int | port for the RESTAPI | 8000 |
| websocket_port | int | websocket port for the frontend | 8001 |
| public | bool | if false server only reachable for localhost |
true |
| secret | string | the session secret |