Hardware
80 mm vs 58 mm Receipt Paper: Which Roll Your POS Actually Needs
Roll width, printable width and the character grid are three different numbers. Here is what 58 mm costs you against 80 mm, and why 203 dpi decides your barcode size.
· 9 min read
A 58 mm roll gives you 48 mm of printing. An 80 mm roll gives you 72 mm. Almost every argument about receipt paper is really an argument about those two numbers and a third one nobody mentions: the character grid the printer lays down on top of them. Get the three straight and the rest of the decision makes itself.
Three numbers people conflate
Roll width is the physical paper. It is what you order, what the cradle is sized for, and what the paper-out sensor watches. A 58 mm roll is really 57.5 mm; an 80 mm roll is 79.5 mm. The half millimetre matters because rolls are cut to a tolerance and a roll on the wide side of spec will bind in a tight cradle.
Printable width is how much of that paper the thermal head can actually reach. The head is shorter than the paper is wide, and the transport needs tracking margin on both sides. You lose roughly 9.5 mm on a 58 mm roll and 7.5 mm on an 80 mm roll. That is where the 48 mm and 72 mm figures come from.
Character grid is what the printable width becomes once the head resolution and the font cell are applied. This is the number that decides whether an address block fits, and it is the only one of the three that a receipt actually looks like.
| Roll spec | 58 mm | 80 mm | 76 mm impact |
|---|---|---|---|
| Paper width | 57.5 mm | 79.5 mm | 76 mm |
| Print width | 48 mm | 72 mm | 63.5 mm |
| Dots at 203 dpi | 384 | 576 | n/a |
| Font A columns | 32 | 48 | 40 |
| Font B columns | 42 | 64 | n/a |
203 dpi is where the rest is derived from
Nearly every receipt printer in service uses a 203 dpi head. Divide 203 by 25.4 and you get 7.99, which the whole industry rounds to a clean 8 dots per millimetre. One dot is 0.125 mm. Once you internalise that single conversion, every other spec on the page becomes arithmetic: 48 mm of print is 384 dots, 72 mm is 576, and any element you want on the tape has to land on a whole number of dots.
That last constraint is why head density decides your barcode size rather than your design does. A Code 128 symbol wants a minimum X-dimension — the width of its narrowest bar — of about 0.25 mm. At 0.125 mm per dot that is exactly two dots, so it renders cleanly. A UPC-A symbol at 100 percent magnification wants a 0.33 mm X-dimension, which is 2.64 dots. There is no such thing as 0.64 of a dot. Round down to two dots and you are at 75.8 percent magnification, below the 80 percent floor GS1 permits. Round up to three dots and you get 0.375 mm, or 113.6 percent magnification, which is legal and which widens the symbol to about 42 mm. That fits inside 72 mm comfortably and inside 48 mm only just.
The practical rule: pick element sizes in dots first and convert to millimetres afterwards. Designing in millimetres and letting the driver round is how you end up with barcodes whose bar edges are one dot wider on one side than the other, which is exactly the kind of asymmetry a laser scanner rejects.
What 32 columns actually costs you
Going from 80 mm to 58 mm is a 50 percent cut in printable width and a 16-column cut in the grid. It does not shrink a receipt evenly. It removes specific things, and it removes them in a predictable order.
- The address block goes first. A street line plus a city, state and ZIP line rarely both fit in 32 characters without wrapping into something that looks broken. Most 58 mm layouts keep the business name and the phone number and drop the rest.
- The SKU column goes second. A nine to twelve digit SKU plus a description plus a quantity plus an extended price cannot share 32 columns. Formats that need SKUs either move to two lines per item or move to 80 mm.
- The per-item tax flag goes third. That single trailing character in column 48 that marks a line taxable or exempt is the cheapest field on the tape, and it is still the first thing a 32-column layout sacrifices, because giving it a column means the money field loses one.
- The tax rate stops being printable. This one is subtle and it catches people out. Once you drop the taxable and non-taxable subtotal split, printing the rate next to the tax amount makes the receipt look wrong, because the rate applied to the visible subtotal does not produce the printed tax. Narrow tapes print a bare tax amount for exactly this reason.
Here is the same three-line sale on a 32-column grid:
HARBOUR LANE COFFEE
(555) 010-4472
--------------------------------
08/05/2026 14:22 TXN 004417
--------------------------------
2 FLAT WHITE 9.00
- OAT MILK 1.40
1 ALMOND CROISSANT 4.25
--------------------------------
SUBTOTAL 14.65
TAX 0.92
TOTAL 15.57
--------------------------------
VISA CREDIT 15.57
CARD # **** **** 1234
ENTRY: CONTACTLESS
AUTH CODE: 05123D
--------------------------------
THANK YOUAnd the same sale at 48 columns:
HARBOUR LANE COFFEE
418 HARBOUR LANE, SUITE 2
RIVERTON, ST 04412
(555) 010-4472
STORE 0142 REG 03 CASHIER 07
------------------------------------------------
08/05/2026 14:22:19 TXN 0142-03-004417
------------------------------------------------
SKU 100244 FLAT WHITE
2 @ 4.50 9.00 T
- OAT MILK
2 @ 0.70 1.40 T
SKU 100781 ALMOND CROISSANT
1 @ 4.25 4.25 F
------------------------------------------------
SUBTOTAL 14.65
TAXABLE SUBTOTAL 10.40
NON-TAXABLE SUBTOTAL 4.25
TAX 8.875% 0.92
TOTAL 15.57
------------------------------------------------
VISA CREDIT 15.57
CARD # **** **** 1234
ENTRY: CONTACTLESS AUTH CODE: 05123D
AID: A0000000031010 APP LABEL: VISA CREDIT
CVM: NO SIGNATURE REQUIRED
------------------------------------------------
# ITEMS SOLD 3 T = TAXABLE F = FOOD
THANK YOUSame transaction, same total. The wide tape carries a full location block, a store and register identifier, SKUs, the taxable and non-taxable split, per-line flags with a legend, and a full EMV block on two lines instead of four. None of that is decoration. The store and register identifier is how the transaction gets found again; the split subtotal is how a tax reviewer reconciles the line; the flag legend is how a customer sees which item was exempt. Both layouts are available in the format gallery if you want to hold them side by side.
Font A, Font B, and double-width headings
The two font cells in the ESC/POS command set are the reason the column counts are what they are. Font A is a 12 by 24 dot cell, which at 8 dots per millimetre is 1.5 mm wide and 3.0 mm tall. Font B is 9 by 17, so 1.125 mm by roughly 2.1 mm. Divide the dot count by the cell width and you get the grid: 384 over 12 is 32, 384 over 9 is 42 with a remainder, 576 over 12 is 48, and 576 over 9 is 64.
Font B is a real option when you need columns more than you need legibility — a long service description, a wide ledger. It is a poor default. A 17-dot tall glyph on a head whose dots are already marginal after a few thousand metres of paper is the first thing to become hard to read, and thermal images fade with age regardless.
Double-width and double-height modes multiply the cell rather than substituting a different font, so a double-width Font A heading occupies two grid columns per character. That is workable on 48 columns, where a 24-character business name still fits emphasised. On 32 columns it means 16 characters, which is why 58 mm layouts usually leave the header at normal width and simply centre it.
76 mm impact and 112 mm: where the odd widths live
76 mm impact is dot matrix, not thermal. It survives in exactly the places thermal fails: kitchen expeditor stations, where steam and radiant heat from a pass will fog or blacken a thermal slip before the cook reads it, and in freezers and wash-down areas where the coating gets damaged. Impact printing also gives you a second colour — the red ribbon channel most kitchen printers use to flag voids and allergen modifiers. Its condensed pitch of 17.8 characters per inch puts 40 columns across about 57 mm of a 63.5 mm printable band. It is slower and louder, and it is the right tool anyway when the slip has to survive the environment.
112 mm is a wide-format thermal roll, roughly 104 mm of printing and 832 dots at 203 dpi, giving 69 Font A columns. You see it on kiosk and ticketing hardware, on some pharmacy and logistics label printers, and anywhere a document needs to be tape-fed but genuinely wide. It is not a point-of-sale width, and paper for it is neither cheap nor stocked locally.
Thermal, impact, and the BPA question
Thermal paper has no ink. The face is coated with a leuco dye and a colour developer, and the print head develops the image with heat. That is why it is fast and silent, why it has one consumable instead of two, and why a receipt left on a car dashboard turns black.
The developer has historically been bisphenol A, which is absorbed through skin on handling and is the reason cashier exposure has been studied. Most suppliers now sell BPA-free stock, usually developed with bisphenol S or a phenol-free chemistry such as Pergafast. Bisphenol S is a structural analogue and is not automatically the safer option, so if this matters to you, buy the phenol-free grade specifically rather than anything labelled only BPA-free. Phenol-free stock costs perhaps 10 to 20 percent more per roll and prints identically.
Two storage facts worth knowing whatever grade you buy: thermal images are destroyed by heat, UV, plasticisers and solvents, so never file receipts in a PVC sleeve or near a laminator. And a receipt you need to keep for years should be scanned or photographed the week it is issued, because the coating will fade long before your retention obligation expires.
Blank receipts and the other five-second fixes
- The roll is in upside down. Thermal paper is coated on one face only. Scratch the paper hard with a fingernail — friction heat develops a grey line on the coated side. That side has to face the head.
- The print density is at minimum. Printers ship at a middle density and someone lowers it to save paper wear. Anything below the middle setting fades badly on recycled or phenol-free stock.
- The head is dirty. Adhesive residue and paper dust insulate the head so it cannot transfer heat. Isopropyl alcohol on a lint-free swab along the head line, dry before closing the lid, and the missing vertical stripe usually goes away.
- The stock is dead. A roll stored in a hot van or alongside a solvent has already spent its coating. Take a roll from a fresh box and see whether the problem follows the printer or the paper.
- The driver is set to the wrong print width. A printer configured for 576 dots and loaded with 58 mm paper will truncate everything past column 32 and can look like the right-hand half of the receipt did not print.
Matching a generated PDF to your roll
A generated receipt only reconciles against the tape if it is the same physical width. Set the page to the roll width — 57.5 mm or 79.5 mm — and lay the content out inside the 48 mm or 72 mm printable column, and the printer driver will feed it as continuous tape with no scaling. Set it to A4 and scale, and you get a receipt whose monospace grid no longer lands on the character cell and whose barcode X-dimension has drifted off the dot pitch.
Everything on the receipt maker is built against these figures, so a 58 mm format exports as a 57.5 mm page on a 32-column grid and an 80 mm format as a 79.5 mm page on 48 columns. Pick the format that matches the roll in the printer, and the printed output and the PDF are the same document.
Common questions
How many characters fit on a 58 mm receipt?
Thirty-two. A 58 mm roll is 57.5 mm of paper with a 48 mm printable band, which is 384 dots across at the standard 203 dpi head density. The ESC/POS Font A character cell is 12 dots wide, so 384 divided by 12 gives 32 columns. Switching the printer to the smaller Font B cell of 9 dots gets you 42 columns at the cost of legibility.
What is the actual printable width of an 80 mm roll?
About 72 mm. The roll itself is 79.5 to 80 mm wide, but the print head cannot reach the edges, so the usable band is 72 mm, or 576 dots at 203 dpi. That works out to 48 columns in Font A and 64 in Font B.
Why is my receipt printing blank?
Nine times out of ten the roll is in upside down. Thermal paper is coated on one side only, and the head can only develop the image on the coated face. Pull a length out, scratch it hard with a fingernail, and look for a grey line. If the grey line appears on the side facing away from the head, flip the roll.
Can I put an 80 mm roll in a 58 mm printer?
No. The paper-out sensor and the roll cradle are both sized to the narrower spool, and an 80 mm roll will either not seat or will bind and tear. The reverse works mechanically: many 80 mm printers ship with a spacer clip that lets them take 58 mm rolls, but you must also set the printer to a 384-dot print width or every line will be laid out for a page that is not there.
What paper width should a generated receipt PDF be?
Set the page width to the roll width, not the printable width, and let the margins fall where the printer puts them. A 58 mm export should be a 57.5 mm wide page and an 80 mm export a 79.5 mm page, with the content laid out inside a 48 mm or 72 mm column. Exporting at A4 and scaling down at print time is what produces the shrunken, off-centre receipts that will not scan at a returns desk.
References
- 1.58 mm, 80 mm and 112 mm Thermal Receipt Paper: Which Size Is Right for You — HPRT. Accessed August 2026.
- 2.POS Printer: 58 mm vs 80 mm Thermal Printers — Rosper Technology. Accessed August 2026.
- 3.ESC/POS Command Reference — character fonts and print modes — Seiko Epson Corporation. Accessed August 2026.
- 4.GS1 General Specifications — symbol dimensions and quiet zones — GS1. Accessed August 2026.
- 5.Bisphenol A (BPA) — National Institute of Environmental Health Sciences. Accessed August 2026.