Skip to content

Hindi on thermal printers

Why Devanagari comes out as boxes on some printers, which of the two printing routes handles it, and what to change in the driver.

Updated 11 September 20263 minApplies to: Back office, Help centre

Why Devanagari is different

A cheap thermal printer does not really print letters. It prints from a small table of characters burned into its own firmware, and on almost every unit sold here that table has English, digits, punctuation and a scattering of European accents. It has no Devanagari in it at all.

Send it हिंदी and it prints whatever happens to sit at those numbers in its own table — boxes, question marks, or a run of nonsense. The printer is not broken and your menu is not wrong. There is simply nothing in the machine to print with.

The way round it is to stop sending letters and send a picture of the letters. That is what both of the routes below do, in different places.

If this machine prints through the browser

The browser hands the document to the operating system's printer driver, and the operating system already owns Devanagari fonts. It draws the text and sends the printer an image of the finished line, so Hindi dish names come out correctly with nothing to configure — as long as the driver is in the mode that accepts images.

If you get boxes on this route, the driver has been set to a text or font mode, where it passes characters straight through to the printer's own table. In the driver's preferences look for a graphics or raster option, or a "use system font" setting, and turn it on. It is often called "print as image" or "download as bitmap". Chits print slightly slower in that mode; that is the whole cost.

If this machine prints through a printer bridge

The bridge decides line by line. It scans each block of the chit, and any block containing Devanagari is rendered into a small image and sent as one — the rest of the chit is still sent as fast, sharp text.

That per-line decision matters more than a language setting would. An English kitchen with three Hindi dish names on the menu gets exactly three rendered lines and an otherwise ordinary chit. It also means you never have to tell the product which language you are in: it reads the text.

The same is true of a Hindi note the cashier types onto an order and of a Hindi table name. If the characters are there, they are drawn.

The rupee sign

The printer's own character table has no rupee sign either. On the bridge route it prints as Rs. — which is what thermal-printed Indian bills have said for decades and is entirely acceptable on a tax invoice. Only symbols are substituted this way, never digits and never a name, so the amount you read on paper is the amount that was charged.

On the browser route the rupee sign is drawn by the operating system like any other character, so it prints as itself.

Check these first

  1. Print the same chit from anywhere else on the machine — a text file with a Hindi word in it. If that comes out as boxes too, this is the printer driver and nothing to do with the till.
  2. Turn on the driver's graphics or image mode. This is the fix on the browser route, and the one that solves most reports.
  3. Check the roll. Rendered Devanagari is denser than English text; on a nearly-finished roll or a printer with the darkness turned right down, it comes out faint and reads as broken characters.
  4. Consider the kitchen display instead. A screen has every font the machine has, so Hindi is never a question on it. For a kitchen that reads Hindi tickets, that is often the better answer than fighting a printer's firmware.

A note on your menu

You do not have to choose one language for the menu. Item names are printed as they are typed, and a menu that mixes both prints as a menu that mixes both — English where you wrote English, Devanagari where you wrote Devanagari, on the same chit.

Still stuck?

Beta