Website | English | δΈ­ζ–‡

14Label Print Service (Background Service)

The Label Print Service is a standalone background program independent from the main designer. Think of it as a "print server" β€” it runs 24/7, waiting to receive print jobs.

πŸ“ When do you need it?
- Batch automatic printing without manual intervention
- Other software (ERP, MES) sends print commands over the network
- Print jobs need queue management (queuing, retry, throttling)
- Remote monitoring of print status

14.1 Starting and Stopping

ActionMethod
Start serviceDouble-click AbiaoLabelPrintService.exe. No window appears β€” only a printer icon in the system tray (bottom right).
Confirm it's runningLook for the printer icon in the system tray; check the overflow area if hidden.
Stop serviceRight-click tray icon β†’ "Exit".
Auto-start on bootRight-click tray icon β†’ "Settings" β†’ check "Auto-start on boot".
πŸ’‘ Can't find the tray icon? Click the ^ arrow (show hidden icons) near the bottom right. You can also drag the icon to the main tray area.

14.2 Three Receiving Channels

The Print Service offers 3 ways to receive print jobs:

β‘  TCP Channel (Port 8888)

The most direct method. Any program or device can send ZPL commands via TCP to port 8888.

Use cases:

β‘‘ HTTP REST API (Port 5000)

The most common method. Send print jobs via standard HTTP requests β€” callable from any language (C#, Java, Python, PHP, etc.).

Management dashboard: Open http://localhost:5000 in a browser to see the service status page.

Available API endpoints:

MethodEndpointPurpose
GEThttp://localhost:5000/Open service status web page
POSThttp://localhost:5000/printSend ZPL command to print a label
GEThttp://localhost:5000/queueView current print queue
DELETEhttp://localhost:5000/queue/{taskId}Cancel a queued job
GEThttp://localhost:5000/historyView print history
DELETEhttp://localhost:5000/historyClear all history
POSThttp://localhost:5000/shutdownRemotely stop the print service

Python example:

import requests, json

zpl_data = "^XA^FO50,50^ADN,36,20^FDHello World^FS^XZ"
task = {
    "zpl": zpl_data,
    "copies": 2,
    "printer": "ZDesigner ZD421",
    "priority": 0
}

resp = requests.post("http://localhost:5000/print", json=task)
print(resp.json())  # {"success": true, "taskId": "..."}

curl test:

curl -X POST http://localhost:5000/print ^
  -H "Content-Type: application/json" ^
  -d "{\"zpl\":\"^XA^FO50,50^ADN,36,20^FDHello^FS^XZ\",\"copies\":1}"

β‘’ Directory Monitoring

The service watches a specified folder. When .zpl or .iba files arrive, it automatically queues them for printing.

14.3 Print Queue Management

When multiple jobs arrive simultaneously, the service queues them:

14.4 Settings Management

Right-click the tray printer icon β†’ "Settings":

SettingDefaultDescription
TCP Port8888TCP listen port
HTTP Port5000HTTP API port
Watch Directory(empty)Folder path to monitor, e.g. D:\PrintJobs\
Default Printer(system default)Default printer when unspecified
Retry Count3Retries on failure (0=no retry)
Retry Interval5 secondsWait between retries
Throttle Interval200 msMinimum gap between jobs
Auto StartOffStart automatically with Windows
Queue Storage Path(default)Where queue persistence files are stored

14.5 Conditional Rules (Advanced)

Rules can intelligently process print jobs based on their content.

Rule examples:

Rule structure:

Rules are evaluated top-to-bottom; the first match stops evaluation.

14.6 System Tray Operations

Find the printer icon near the clock:

14.7 COM Component Support (Legacy Compatibility)

If your organization still uses VB6, VBA (Excel macros), or other legacy technologies, you can call the print service via COM:

Dim service As Object
Set service = CreateObject("PrintServiceComServer")
service.PrintZPL "^XA...^XZ", "ZDesigner ZD421", 1

Keyboard Shortcuts Contents End β€Ί