Silent thermal printing from Shopify admin with PrintNode
LabelCraft - barcode labels for Shopify that print at exactly the size you set.
Every label prints at the size you set - measured, not approximate.
Overflow or a missing barcode always raises a visible warning before you print.
Native ZPL puts every bar on whole printer dots. Bars under 2 dots wide, or PDF EAN/UPC bars thinner than the GS1 minimum, raise a warning.
We only write to your barcodes that were empty when we read them, unless you ask us to fix them.
LabelCraft can push your labels straight to a thermal printer through PrintNode, without opening the browser print dialog or handling a file. You pick your products, click Send to printer (or Send ZPL to printer for a Zebra), and the labels come out - the same exact sizing and never-silent warnings you get from the PDF and ZPL paths, just with no dialog in the way. This guide explains what PrintNode is, what you need, and how to connect it.
Silent printing, straight from Shopify
PrintNode is a small cross-platform print client you install on the computer wired to your thermal printer. Its cloud account exposes a REST API, and the local client pushes any job it receives straight to the printer. LabelCraft sends your rendered labels to your PrintNode account and PrintNode does the last hop to the printer - so a print becomes one click in the Shopify admin instead of a browser dialog and a scaling setting to get wrong.
What you need
- A PrintNode account - their free plan includes a set number of prints each month and their paid plans more; each job LabelCraft sends counts as one print, however many labels it holds.
- The PrintNode client installed on the computer connected to your label printer, signed in and showing the printer as online. On Windows, install it as a desktop app, as PrintNode recommends: a Windows service runs under the system account and prints with that account's defaults, not with what you set in your driver's Printing preferences.
- Your PrintNode API key pasted into LabelCraft Settings - that is the only step inside LabelCraft, and the whole feature stays off until you do it.
How to connect PrintNode to LabelCraft
- Install the PrintNode client on the machine attached to your printer, as a desktop app on Windows, and sign in, so the printer shows as online in PrintNode.
- Copy your API key from the PrintNode dashboard.
- In LabelCraft, open Settings and paste the key. LabelCraft trims stray whitespace and rejects anything that cannot be a real key.
- LabelCraft validates the key by listing your printers, so a bad key is caught right there. Pick the printer you want to print to.
- A Send to printer button - and Send ZPL to printer for a Zebra - now appears on the main Print screen, next to Generate PDF and Download ZPL.
What LabelCraft sends to your printer
- Native ZPL or PDF, your choice - Send ZPL to printer pushes raw ZPL to a Zebra so the printer draws the barcodes itself; Send to printer pushes the rendered PDF, which any printer can take. Both come from the same exact-size render.
- Exact size, no scaling step - the same ±0.1 mm dimension guarantee applies, and the template's X and Y offsets (Advanced settings → Printer calibration) move the print as they move a downloaded PDF. LabelCraft asks PrintNode to print the PDF at its actual size, never fitted to the page, so there is no print-dialog scaling to get wrong. On Windows, PrintNode applies that only with its Engine6 printing backend: pick Engine6 in the Printers tab of the PrintNode client (on a Mac, Engine7 if a label comes out turned or resized). Set the paper size and orientation in your printer driver to match your roll, give your template in LabelCraft the same size as that paper, and print one test label after each change to the driver.
- The whole batch, once - the file LabelCraft sends already contains every physical label, so it always prints as a single copy. You never get the batch multiplied by an accidental copy count.
- Your key stays on the server - the API key is read server-side to talk to PrintNode and never reaches your browser. Once saved it is never shown again; LabelCraft displays the connected printer's name, not the key.
The privacy boundary, stated plainly
Every claim below is checkable, and each one describes what the code does rather than what a policy hopes. This is the boundary a silent-print bridge should be held to:
- Only the print job leaves your store - what LabelCraft sends to PrintNode is the rendered label file, a job title and the printer id. Not your catalog, not your orders, not your customers.
- PrintNode never sees your Shopify credentials - the bridge is driven with your own PrintNode API key; no Shopify token, password or admin access of any kind flows to PrintNode.
- Disconnecting is one step, and it is yours - clear the key in Settings, or revoke it in your PrintNode dashboard, and the connection is dead. The download buttons keep working either way. Uninstalling LabelCraft deletes the saved key with the rest of your data.
- Nothing of ours runs on your machines - the desktop client is PrintNode's own software, installed by you, on a computer you control. LabelCraft cannot reach that computer except through the print job you chose to send.
Never-silent: you always know whether it printed
A silent print can still fail for reasons outside the app - the printer is off, the key was revoked, the PrintNode account refused the job. LabelCraft never swallows that. Every PrintNode failure comes back as a specific, localized message so you know the labels did not print and why:
- Bad or missing key - the key was rejected or was never saved.
- Printer or computer offline - the printer, or the machine running the PrintNode client, is not reachable.
- Job refused - PrintNode would not accept the job, for example a permissions or account problem.
- Busy / rate-limited - PrintNode is throttling requests; this one is retryable.
- Network timeout - the request to PrintNode did not complete.
What direct PrintNode printing does not do
LabelCraft talks to your printer through your PrintNode account - it does not open a raw TCP/IP connection to a printer's IP address. A printer running in network-only mode (raw ZPL over the LAN, no driver and no PrintNode) cannot be driven straight from the app: connect it through PrintNode, or use the Download ZPL / Generate PDF file and send it yourself. And connecting PrintNode never removes those download buttons - they stay available for every template, so you are never locked into one path.
Step by step: print a batch silently
- Open LabelCraft from your Shopify admin and pick the products to label, the same as any print job.
- In Step 3 - Print, choose your template and check the live preview and any warnings.
- Click Send to printer to push a PDF, or Send ZPL to printer for a Zebra. It goes to the printer you saved in Settings.
- LabelCraft pushes the job through PrintNode and confirms it was accepted, or tells you exactly what went wrong.
- Scan a printed label to confirm it reads, then run the rest of the batch.
When the PDF prints right and Send to printer does not
Send to printer and the PDF come from the same render, and both go through your printer driver. What differs is the program that puts the page on the driver's paper: the one you print the PDF from, such as your browser, or the PrintNode client. When the two disagree, check these points in order:
- Check the driver's paper, then make your template that size. LabelCraft sends the same page as the PDF, at its actual size, and the driver prints it on the paper (the stock) selected in it. On a wider or taller paper, that page can land in a different spot than the PDF you print from your browser, for example in the middle of the paper. So check first that the driver's paper matches the roll you loaded, then make your template in LabelCraft that size. If that paper has to stay wider than the part you print on, make the template as wide as the paper and place your text where it lands on the label.
- Then fine-tune the position. In the template, under Advanced settings, the X offset and Y offset of Printer calibration move the print: a positive X moves it right, a positive Y moves it down. They move the PDF too. Send one label after each change and hold it against the roll.
- Find the PrintNode client. Installed as a desktop app on Windows, it has an icon in the system tray, at the right end of the taskbar, sometimes behind the arrow that shows hidden icons: right-click it, then Open PrintNode. If there is no icon but labels still print from this computer, the client probably runs as a Windows service: open
http://localhost:8888in a browser on that computer, and read the next point too. Either way, the menu in the top right corner of the Printers tab should show Engine6. - Prefer the desktop app to a service. As a Windows service, the client runs under the system account and prints with that account's printer defaults, so a change made in the driver's Printing preferences does not reach it. PrintNode usually recommends the desktop app: reinstall the client that way. On a computer where several Windows users are signed in at the same time, its FAQ recommends the service instead, to avoid duplicate prints, and gives two ways to make the service use your printer settings.
Install free - 200 labels per month →
More guides: exporting native ZPL, printing Zebra labels, all LabelCraft integrations - or contact LabelCraft support.
Related guides
- Shopify Label Printer Compatibility
- The printer's own software or a Shopify app: which one, and when
- How to Print Dymo Labels from Shopify
- How to Print Zebra Labels from Shopify
- How to Export ZPL Labels from Shopify
- How to Print Brother Labels from Shopify
- How to Print Rollo Labels from Shopify
- How to Print Munbyn & Phomemo Labels from Shopify
- How to Print Avery Labels from Shopify
Not ready to install? Try the no-install demo and measure a real label
Still stuck after this guide? Get help from a human