THERMAL PRINTERS / WINDOWS AND MAC / UPDATED 17 OCT 2026

Thermal Printer Software: What Works on Windows and Mac

Thermal label software for Zebra, TSC, Toshiba TEC and Epson on Windows and Mac. Which printers work, how each connects, and when not to use it. Free plan.

FREE PLAN · NO CREDIT CARD · WINDOWS / MAC / ANDROID / WEB
CARTON LABEL 100 x 150 MMDRAWN FROM ZPL
A 100 by 150 mm carton label with lot, best-before date, serial, a GS1 Data Matrix and a Code 128 barcode — LabelInn

SHORT ANSWER

Short answer. Thermal printer software does two jobs: it lets you lay out a label, and it sends the finished job to the printer in the command language that printer understands. LabelInn does both for printers that speak ZPL (Zebra), TSPL (TSC and many low-cost clones), TPCL (Toshiba TEC) or ESC/Label (Epson ColorWorks), on Windows and macOS, and it starts free. It is not the right tool for every printer or every shop, and the tables below say where.

Got a thermal printer on the desk? Plug it in, install the app, and see whether it finds the printer before you read further. Download LabelInn →

01 / PRINTERS

Which printer, which language, which connection

Find your printer in the left column. "Evidence" is what we can actually point to, using the labels on our printer pages.

Printer familyLanguage LabelInn sendsEvidenceRead this first
Zebra ZD, GK, GX, ZT, ZMZPL IIOur bench printer is a GK420d over USB. ZD230, ZD410, ZD421, ZD621, GK420t, ZM400 and ZT231 have production-observed jobs; ZD220 is protocol-compatible onlyZebra printer software
TSC TE200, TE210, TE244, TE300, DA310, TDP-225, TTP-244 ProTSPL; auto-detect tries ZPL first on a TSC and falls back to TSPLProduction-observed TSPL jobs on every model listed except the TE200 (protocol-compatible)TSC label printer software
Toshiba TEC B-EX4T, BV400, B-FV4TPCL onlyTPCL byte forms checked on a physical B-FV4 / BV400 over USB; B-EX4T and BV400 have production-observed jobsToshiba label printer software
Epson ColorWorks and TM-C7500GESC/LabelProduction-observed on CW-C4000e, CW-C6000Au, CW-C6500Ae and TM-C7500GEpson printers
Xprinter, Gprinter, HPRT, iDPRT, Rongta, Zjiang, PostekTSPL, if the model understands itAuto-detect treats these names as TSPL-only. Not every model in these brands speaks TSPLXprinter and clone software
Bixolon, Argox, Citizen, SATO, Honeywell / IntermecZPL or TSPL, only if your model emulates itThere is no Bixolon, Argox, SATO or Citizen language in LabelInn. Auto-detect tries ZPL, then TSPLCheck the model's manual for a ZPL or TSPL emulation mode
DYMO LabelWriter 450 familyA native raster path built from DYMO's technical referenceNot yet confirmed on a physical LabelWriterDYMO LabelWriter 450
Brother, Godex, inkjet and laser label presses, receipt-only printersNone claimedNo native Brother or Godex language on this page. A model with a ZPL or TSPL mode may work; we make no promiseUse the maker's own software

02 / CONNECTIONS

Windows and macOS: how each connection works

Connection support differs by operating system. This is what the code does, not what a brochure would like.

ConnectionWindowsmacOSWatch out for
USBOpens the printer's USB print interface directly and reads status back. If the maker's driver already owns the device, LabelInn sends a RAW job through that printer's Windows queue instead. That path is one-way: no status readbackOpens the device through the macOS USB layer directly. No driver or queue is involvedOnly one program can hold a USB printer at a time. Close the maker's own tool before you print
Network (Ethernet or Wi-Fi)Raw TCP on port 9100. The printer window scans the network (mDNS and a port scan) or you type the IP addressThe sameThe scan only sees printers on your own network segment. Add by IP across a VLAN
BluetoothBetaBetaThe Bluetooth discovery code is marked beta in the app. Use USB or network for a line that must not stop
Printing from Word or ChromeA LabelInn printer queue, so any Windows app can print to a label printer. See the setup pageNot verified on macOS. Do not plan around itThe queue is for occasional documents. Designs made in LabelInn print without it

Do you need a driver? Not to print from LabelInn. You can leave the maker's Windows driver installed for other programs; LabelInn does not need it, and uses it only as the fallback path above. See the connection guide for the exact screens.

03 / HOW IT PRINTS

What is actually sent to the printer

LabelInn lays the label out on your PC, renders it to a one-bit picture at the printer's own resolution, and sends that picture wrapped in the printer's own command language. The same label therefore looks the same on screen, on a Zebra, a TSC and a Toshiba, and any font on your computer works. Each language gets its own job:

Printer languageWhat a LabelInn job looks like on the wireSource
ZPL (Zebra)^XA, the media settings (width ^PW, length ^LL and the others your media definition sets), ^FO, the label as a compressed graphic field (^GF, Z64), ^PQ for copies, ^XZzpl_commander.dart
TSPL (TSC and clones)SIZE, GAP or BLINE, DIRECTION, REFERENCE, SPEED and DENSITY only if you set them, CLS, the label as a PCX block, PRINTtspl_commander.dart
TPCL (Toshiba TEC)[ESC]D (size), [ESC]C (clear), [ESC]SG (the label as a bitmap, TOPIX-compressed), [ESC]XS;I (issue: copies, sensor, speed)PRINTER_LANGUAGE_MATRIX.md
ESC/Label (Epson ColorWorks)A colour raster job in Epson's own command set, with status read backesclabel_commander.dart

The trade-off is real. A printer-native text field is a few bytes; a picture is many more. Printer-resident formats, stored fonts and printer-side serial counters are not used: serial numbers are counted in LabelInn and each label is rendered with its own number. For a few hundred labels this is invisible. If you print many thousands a shift, test it on your printer first; we publish no throughput figure.

04 / WORKED EXAMPLE

Worked example: a carton label from a production line

This is a 100 x 150 mm label at 203 dpi, which is 812 x 1218 dots. It carries a product name, a best-before date, a lot, a serial, the GTIN, a GS1 Data Matrix with all four values in one symbol, and a Code 128 for older scanners. The picture beside the title was drawn from the ZPL below by the ZPL viewer on this site: positions, boxes and barcode modules are exact, and the text uses a stand-in font because a browser cannot reproduce a printer's own fonts.

EXAMPLEZPL
^XA
^PW812
^LL1218
^LH0,0
^FO30,30^GB752,1158,4^FS
^FO50,52^A0N,38,38^FDACME BEVERAGES - LINE 3^FS
^FO50,100^A0N,28,28^FDPlant 2, Ankara^FS
^FO30,150^GB752,3,3^FS
^FO50,172^A0N,30,30^FDPRODUCT^FS
^FO50,210^A0N,72,72^FDOrange juice 1 L^FS
^FO50,300^A0N,32,32^FDCase of 12^FS
^FO30,360^GB752,3,3^FS
^FO50,382^A0N,30,30^FDBEST BEFORE^FS
^FO50,420^A0N,64,64^FD2027-10-31^FS
^FO430,382^A0N,30,30^FDLOT^FS
^FO430,420^A0N,64,64^FDL2610^FS
^FO50,520^A0N,30,30^FDSERIAL^FS
^FO50,558^A0N,64,64^FDSN000417^FS
^FO430,520^A0N,30,30^FDGTIN^FS
^FO430,566^A0N,46,46^FD05901234123457^FS
^FO30,660^GB752,3,3^FS
^FO60,700^BXN,10,200,,,,_^FD_101059012341234571727103110L2610_121SN000417^FS
^FO400,740^BY2^BCN,180,Y,N,N^FD000417L2610^FS
^FO50,1010^A0N,26,26^FB700,3,6,L^FDThe square code carries GTIN, best-before date, lot and serial in one symbol. The linear code is the lot and serial for the old handheld scanners.^FS
^XZ

The square symbol encodes (01)05901234123457(17)271031(10)L2610(21)SN000417: GTIN 05901234123457, expiry 31 October 2027, lot L2610, serial SN000417. Paste the ZPL into the viewer to see it, change the lot, and watch the symbol change. In LabelInn itself you would not write this ZPL by hand; you place the Data Matrix, pick the Application Identifiers from a list, and bind each one to a column, a counter or a date rule. See GS1 barcode software and manufacturing label printing.

05 / DECISION

When LabelInn is the wrong tool

Match your situation. Several rows send you somewhere else on purpose.

Your situationBetter choiceWhy
Windows only, one Zebra, labels designed by hand, and the free tool is enoughZebraDesigner EssentialsIt is Zebra's own and free. Zebra's release notes list Windows only, so this stops being an answer the day a Mac joins.
A Mac, or a mix of Mac and Windows PCs, with more than one printer brandLabelInnOne app on both systems that speaks four printer languages.
Labels filled from Excel, CSV, a shop, a database or an APILabelInn (Starter or above)Binding a data file is a paid feature. Free can design and print by hand.
Your ERP already sends ZPL to the printer and it worksKeep itLabelInn can accept raw ZPL over its API, MQTT or gRPC, but if nothing is broken it adds little.
You rely on printer-resident formats (^XF) or printer-side counters (^SN)A ZPL-native toolLabelInn renders every label on the PC and never uses those.
The printer is not Zebra, TSC, Toshiba TEC or Epson (or a clone that emulates ZPL or TSPL)The maker's softwareOutside the four languages LabelInn has nothing to send.
A validated pharma or medical installation already names BarTender or NiceLabelStaySwitching is then a validation project, not a download.

06 / COST

What it costs

Free is $0 and covers designing, printing by hand, templates, serial counters and cloud sync. Starter is $7.99 a month ($79.90 a year) and adds Excel, CSV and Google Sheets binding and two saved workflows. Pro is $24.90 a month ($249.00 a year) and adds the production API, webhooks, database sources, watched folders, scheduled printing and marketplace and carrier connections. Enterprise is quoted and adds the Edge Server (local LAN API, MQTT, gRPC), audit logs, compliance mode and the approval queue. Yearly billing is ten months for twelve, and the 14-day trial includes the Pro and Enterprise features. Details on the pricing page.

QUESTIONS / FAQ

Frequently asked questions

What software do I need for a thermal printer?

Software that can lay out a label and send it in the command language your printer speaks: ZPL for Zebra, TSPL for TSC and many clones, TPCL for Toshiba TEC, ESC/Label for Epson ColorWorks. LabelInn does both on Windows and macOS. If your printer is outside those languages, use the maker's own software.

Is there free thermal printer software?

Yes. LabelInn's free plan designs labels, prints unlimited labels by hand, and includes templates, barcodes, serial counters and cloud sync. Binding an Excel or CSV file is on Starter at $7.99 a month. Zebra also offers ZebraDesigner Essentials free, for Windows only.

Does thermal printer software work on Mac?

Some does. LabelInn has a native macOS app that prints to Zebra, TSC, Toshiba TEC and Epson label printers over USB or the network. Zebra's ZebraDesigner 3 lists Windows only in its release notes. Printing from Word or Chrome to a label printer through a LabelInn queue is a Windows feature we have not verified on macOS.

Do I need a driver for my thermal printer?

Not to print from LabelInn. It talks to the printer in its own language over USB or the network. On Windows the maker's driver can stay installed for other programs; LabelInn uses it only as a one-way fallback when the driver owns the USB device.

Which thermal printers does LabelInn not support?

Printers outside ZPL, TSPL, TPCL and ESC/Label: there is no native Brother or Godex language, and no Bixolon, Argox, SATO or Citizen language either. A model with a ZPL or TSPL emulation mode may work. Inkjet and laser label presses and receipt-only printers are not the target.

How do I connect a TSC or Xprinter?

Connect it by USB or network, press + next to Printers, pick it from the scan, and press Connect. If the scan misses it, add it by IP address or as a USB printer and choose TSPL as the command language. Xprinter and TSC clones are detected as TSPL.

NEXT STEP / LABELINN

Connect your thermal printer and print one label

Install the app, let it find the printer, and print a test label before you decide anything. · Zebra, TSC, Toshiba TEC, Epson · Windows and macOS · Free plan, no card

Start free →