ERP/WMS pushes jobs
Your server maintains a job queue; desk clients connect to your exposed API to receive and print.
WMS/OMS: print job JSON is fixed; build your server to receive, store, and expose WebSocket/HTTP. Desk PCs enter that URL in the client. See remote print setup.
Stack: WMS/OMS enqueues fixed-format jobs → your receive/store/expose consumer API → desk client with that URL → local print. No client on server; remote path does not call webPrintPdf.printHtml (npm is format reference only).
Your server maintains a job queue; desk clients connect to your exposed API to receive and print.
Set pdfOptions size; see batch labels demo.
printOptions.printerName per workstation; same API on Win/Mac/Linux.
Unattended remote print does not call webPrintPdf.printHtml. Below: server-side enqueue in the fixed format; map fields using printHtml API or client test tasks (call npm only for local PoC).
// WMS server: enqueue fixed-format jobs (remote path — do not call printHtml)
const task = {
id: crypto.randomUUID(),
timestamp: Date.now(),
type: 'printHtml',
content: labelHtml,
pdfOptions: { width: '100mm', height: '150mm', printBackground: true },
printOptions: { printerName: stationPrinter },
extraOptions: { requestTimeout: 15 }
};
queue.push(task);
// Desk client: set Remote print URL to your WebSocket/HTTP endpoint
| Mode | Best for | Notes |
|---|---|---|
| WebSocket push | Peak batch, low latency | Client connects to your WS API |
| HTTP polling | WebSocket blocked | Client polls your HTTP API |
| Browser local print | Manual reprint | npm printHtml in admin UI—not unattended remote |
printOptions.printerName matches workstation thermal driverbatchPrint or queue throttlingNo—only on warehouse print PCs; server pushes jobs.
Yes—the client pulls from your consumer API without dialogs—no webPrintPdf.printHtml on the remote path (npm is for local print or format reference).
Each workstation sets a different printerName; WMS jobs may include station IDs. See print options.
The same web-print-pdf front-end runs on Windows, macOS, and Linux/domestic OS—install the matching client on each desktop.