MarkioHelp center → Printers

Printers

A printer profile remembers, in one place, how a particular machine prints: which channel to use, which template it is loaded with, its resolution, its thermal settings, and the calibration offsets that make the label land where it should. With a profile saved, printing is one click instead of five settings.

You do not need a profile to print. Leaving the Printer picker on "PDF into the print dialog" works with every printer on every operating system.

The Free plan saves one profile. Pro saves as many as you have machines — the office sheet printer and the stockroom roll printer are two profiles.


Add a printer

Press Add printer (or Add your first printer) and fill in:

  • Printer name — what you call it in the shop: "Front counter Zebra", "Office sheet printer".
  • Template — which decides the label size this printer is loaded with. Once chosen, the stock name and its size are shown underneath.
  • Print channel — see below.
  • Shift right / Shift down — the calibration offsets, in your unit. Leave at zero until you have printed the calibration sheet.
  • Resolution (dpi) — 203 is the thermal default; 300 prints small text and dense barcodes better.
  • Use this printer by default — only one profile can hold this.

For the Zebra channel, three more fields appear: Darker / lighter, Speed and Media sensor (gap between labels, black mark, or continuous), plus Device name reported by the printer — as Browser Print lists it. Leave the device name blank to use the first printer found.

Two things about these fields:

  • They are empty, not pre-filled. The greyed-out text is a suggestion for the stock you picked; an empty field means "leave the printer alone", and nothing is sent for it.
  • Darker / lighter is a correction, not a setting. It adjusts whatever darkness the printer is already on: -30 is much lighter, 0 changes nothing, +30 is much darker. It is not the number on the printer's own darkness scale — typing your printer's current darkness here would add it to itself.

While the form is open, the panel beside it shows exactly what the calibration sheet will look like on that stock.


Available channels

ChannelWhat it isPlan
PDF into the print dialogAn exact-size PDF through your browser's print dialog. Works with every printer and every operating system.Free
Zebra direct (ZPL via Browser Print)Raw ZPL straight to a Zebra, no dialog.Pro
Shopify POS Print APIPrinting from the till.Pro

Markio suggests a channel from the printer's name and the stock, and shows you its reasoning before you override it: a Zebra model number suggests ZPL, a sheet of Avery suggests PDF whatever the printer is, and an unrecognised printer suggests PDF because that works everywhere.

What each direct channel cannot do

PDF — cannot print without the browser's print dialog; there is no web API that skips it. The scale must be 100% / Actual size.

Zebra (ZPL) — needs Zebra Browser Print installed and running on the same machine as the browser. Only the printer's resident fonts, so a design using another font prints in the resident one. Cyrillic, Greek and CJK do not print at all on this channel — the resident font has no glyphs for them; use PDF for those labels. Logos and product images are not sent. No sheet stock.

POS — see printing from the till.

Direct DYMO and unattended cloud printing are not offered in this release. A LabelWriter still works through PDF into the print dialog and its normal OS driver.

Why direct printing opens a second tab

Chrome 142 closed web pages' access to devices on your local network. Zebra Browser Print (ports 9100/9101) is a service on your own computer, so it is behind that wall. The permission that reopens it can only be granted to a top-level page, and a page embedded inside the Shopify admin cannot be given it.

So Markio's print view is a separate tab on its own address, and that is where the permission can be asked for. If Chrome offers a prompt, choose Allow. If you have already denied it, click the icon at the left of the address bar and allow local network access, then print again.

Markio waits about 1.2 seconds for the agent to answer and about 8 seconds for the print itself. If either times out, the job falls back to a PDF automatically and the status line says why — you get labels either way.


Get the label to line up on the roll

  1. Open the printer's overflow menu () in the Saved printers table and choose Calibration sheet.
  2. It prints one label carrying a frame around the die cut, a crosshair, and an inner box that is exactly 5 mm in on all sides. It prints with no offset applied, because it is the measurement the offset is derived from.
  3. Take a ruler to the printed label. Measure from the edge of the label to the inner box on each side.
  4. The difference from 5 mm is your offset. Type it into Shift right and Shift down on the printer form and save.
  5. Print the calibration sheet again to confirm.

If the outer frame is printing off the label entirely, the whole grid is shifted and that is exactly what these two numbers fix.

Offsets are capped at ±20 mm. If you need more than that, the label stock attached to the template is not the stock in the printer — fix the stock, not the offset.

The print tab has the same two fields at the bottom, so you can adjust and re-render without going back to the admin. Offsets set there are saved against the job's printer and template.

Two stocks whose printable area is a guess

Two of DYMO's jewellery dies (30299 and 30373) are in the library with their outer size taken from the manufacturer but their printable area never measured on a real roll. Markio marks them: you see a warning when you pick the stock, again beside the calibration fields, and the calibration sheet itself prints "printable area UNVERIFIED". Calibrate carefully on those, and tell us what you measure.


Test print

The overflow menu's Test print prints one label using this printer's own template, filled with the worst data your catalog holds — the longest title, the longest SKU, the widest price, drawn from the 200 most recently updated variants. The point is that the test fails here rather than in the middle of a roll.

It needs a template attached to the profile. Without one, Markio says so instead of guessing at a paper size.


Printing from Shopify POS

(On the Pro plan.)

Markio adds three things to POS: a home-screen tile for scan-and-print, an action on a product's page, and an action on a cart line. Each opens a small modal, and the label is sent through Shopify's own POS Print API.

What that means in practice:

  • On iOS and desktop POS the document goes straight to the platform print dialog.
  • On Android a PDF is downloaded to an external viewer instead of printing, so Markio sends labels as HTML there.
  • POS prints to whatever printer the device can reach; it cannot pick a specific printer for you.
  • Markio uses the POS device's current location for stock and per-location access. Changing or deleting that location in a request cannot remove a role's assigned-location restriction.
  • Roles and the print audit identify the Shopify account signed in to the POS device. A staff member who only enters a POS PIN may be different, but Shopify does not authenticate that PIN identity to an app's server. For per-person Markio roles and attribution, each operator must sign in with their own Shopify account and app permission; PIN-only staff inherit the signed-in account's Markio access.
  • The device must be online — the label is fetched from Markio's server by URL. The extension does not claim to work offline, because every path through it ends in that fetch, and a tile that looks alive and fails at the last tap would be worse than an honest one.

Troubleshooting

Nothing happens when I press Print

The print tab was blocked by your pop-up blocker. Allow pop-ups for admin.shopify.com.

"This channel talks to a service running on the same computer as the printer"

That banner is information, not an error. It is telling you before you save the profile that Zebra direct needs Browser Print, that printing will open a separate tab, and that it falls back to PDF if the agent does not answer.

The direct channel keeps falling back to PDF

Work through it in this order:

  1. Is Browser Print running? It is a separate program you install and does not start itself when the browser opens. Check the tray or menu bar.
  2. Is it on the same machine as the browser? The agent is reached over localhost. A printer shared from another computer on the network is not reachable this way — print to it through the PDF channel and the OS driver.
  3. Did Chrome ask for local network access? If you denied it once, the prompt does not come back. Click the icon at the left of the address bar in the print tab and allow it.
  4. Is it Chrome? The Local Network Access permission is a Chrome feature. Other browsers will not offer it, and the fallback to PDF is what you get.
  5. Is the device name right? If you filled in "Device name reported by the printer", it has to match exactly what the agent lists. Clear the field to use the first printer found.

Then open Something printed wrong? at the bottom of the print tab and copy the diagnostic report — it records whether the browser allowed local network access, which is the one fact that settles this.

The label prints at the wrong size

In the print dialog, set Scale to 100% or Actual size — never "Fit to page" — and check that the paper size is your label stock and not A4 or Letter. Compare against the true-size drawing in the print tab first: if it is right there, the dialog is scaling it.

The label is the right size but sits a few millimetres off

That is calibration. Print the calibration sheet and follow the steps above.

Cyrillic or Greek text is blank on my Zebra

The ZPL channel can only use the printer's resident fonts, and those have no glyphs for those scripts. Use the PDF channel for those labels.

"The Free plan saves one printer profile"

Correct. Either edit the profile you have, or upgrade. Printing itself is unlimited on both plans and always will be.

"Attach a template with a label size to this printer first"

A test print and a calibration sheet both need to know the paper. Pick a template on the profile.


← All Markio help topics