> ## Documentation Index
> Fetch the complete documentation index at: https://helpdocs.getthread.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Label and Receipt Printers

> Diagnose thermal label and receipt printers — Zebra/thermal/POS units — where the print language (ZPL/EPL/ESC-POS) and driver mode, the spooler, and network/connection are the usual faults, distinct from office laser/MFP printing (printer-troubleshooting) and POS-app issues (pos-system-issues).

<Info>
  **Category:** Troubleshooting Playbooks · [View source ↗](https://github.com/bryan-getthread/skills/blob/main/skills/troubleshooting-playbooks/label-receipt-printers/SKILL.md)
</Info>

**Connectors:** `IT Glue` `Hudu`

**Role:** [Technician](/start-here/roles/technician)

**Outcome:** Faster Resolution & Response

**When to use:** A Zebra/thermal label printer prints blank, garbage/code, misaligned, or wrong-sized labels; a receipt printer at a POS/register won't print, prints gibberish, or double-prints; labels/receipts stopped after a driver/OS/app change; or barcodes scan poorly / the printer is offline on the network. (Office laser/MFP printing is the printer-troubleshooting playbook; a POS application that won't print is pos-system-issues — the app and the printer are different layers.)

**Run it:** on the one ticket you're working — a tech/user works the device hands-on; not unattended.

## Prompt

```
You are diagnosing a thermal label or receipt printer. These fail differently from office printers: the output is driven by a printer language (ZPL/EPL for labels, ESC/POS for receipts), so a garbage-or-blank print is usually a language/driver mismatch, not a hardware fault. Work the language/driver, spooler, connection, and media matrix in order.

1. Model, language, and connection first. Check the client's documentation and knowledge base for the device: make/model (Zebra, etc.), the print language it's set to (ZPL vs EPL for Zebra; ESC/POS for most receipt printers), how it's driven (the OEM driver, a generic-text/driver, or the application sending raw language directly to the port — many label/POS apps bypass the Windows driver entirely), the connection (USB / Ethernet-IP / Bluetooth / serial), and the media (label size, gap/black-mark/continuous, direct-thermal vs thermal-transfer ribbon). Language and drive-method are the fork — establish them first. Documentation coverage varies per tenant — note what you couldn't check. If a Liongard/RMM inspector covers the host, corroborate spooler/queue state and note the dataprint age.

2. History first. Search this client's past tickets for this printer/label/receipt: a recent driver or OS update, an application update, a printer replacement (a new unit defaulting to a different language is a classic), a media/ribbon change, or an IP change. Sudden garbage output right after a swap usually means language/driver mismatch.

3. Isolate the layer before theorizing. Have the tech/user print the printer's own self-test / configuration label (from the device buttons) — if that's clean, the hardware and media are fine and the problem is upstream (driver/app/connection). Then test whether it's the app or the OS: does a Windows test page (or a known-good label from the OEM utility) work? The config label reports the printer's current language, DPI, and network settings directly. Always confirm the self-test before chasing drivers — it cleanly divides hardware/media faults from upstream ones.

4. Branch on the evidence:
   a. Language / driver mismatch — prints raw code (ZPL/EPL text printing literally), blank, or wildly wrong: the driver or app is sending a language the printer isn't set to, or a raw-language app is being routed through a Windows driver that re-encodes it (or vice-versa). Match them: set the printer's language or the driver to agree, and for raw-sending apps use a generic/raw port path, not a translating driver. A printer replaced with one defaulting to the other language needs its language set or the driver changed.
   b. Sizing / calibration / alignment — labels come out shifted, skipping labels, or wrong length: the printer needs media calibration (so it learns the label gap/black-mark/length) and the driver/label template size must match the actual media. Recalibrate from the device and confirm the template dimensions. Poor barcode scanning is usually darkness/speed settings or a worn printhead/media — adjust darkness or check the printhead.
   c. Spooler / queue / connection — offline, stuck queue, or nothing prints: check the queue and spooler on the host (a stuck job blocks the rest), the port (USB re-enumeration, the network printer's IP reachable and matching the port config — a DHCP change orphans the port), and for shared printers the print server. A network label/receipt printer that "disappeared" is usually an IP change — a reservation/static IP is the durable fix.
   d. Media / hardware — the self-test label itself is bad (faded, streaked, blank): direct-thermal media loaded upside down, a spent or mismatched ribbon (thermal-transfer needs ribbon; direct-thermal must not), a dirty or failing printhead, or the wrong media type. Faded output across the whole label is media/darkness/printhead. A failed printhead or worn hardware is a replacement/vendor path — don't keep tweaking darkness on a dying head.

Don't guess ZPL/EPL/ESC-POS commands or model-specific calibration sequences — settings differ by model and firmware, so look up the OEM's current docs for that exact model on the web and cite them.

You do not run remote commands or restart Windows services yourself. Driver, spooler, calibration, and OEM-utility steps are guidance for a tech/user on the device. If the RMM is connected for this tenant, open the host in it (a deep link for the tech, not script execution); otherwise ask them to reach it manually. Restarting the print spooler affects everyone printing on that host — flag the impact; it is the tech's action, not yours.

Verify and note. Success is the real output correct from the real workflow — a properly sized, scannable label or a clean receipt from the actual application, not just a test page. Leave a plain-text internal note (plain text, no markdown or emojis, raw URLs not links): model, language and drive-method, the isolation result (self-test clean?), branch, action or handoff, verification, and anything you couldn't check.
```


## Related topics

- [Laptop Return Logistics](/skill-library/onboarding-and-access/laptop-return-logistics.md)
- [POS System Issues](/skill-library/troubleshooting-playbooks/pos-system-issues.md)
- [Printer Troubleshooting](/skill-library/troubleshooting-playbooks/printer-troubleshooting.md)
