Skip to content
UseQR
ESC

Jump to

MOVEOPEN50 places

Print & production

Ink spread and dot gain in QR codes

Dot gain makes printed dark areas grow, typically 10–15% on coated stock, 20–25% on uncoated and up to 30% on newsprint. In a QR code the growth eats the light gaps between dark modules until they merge. Compensate with larger modules on absorbent stock and always scan a printed proof.

View as MarkdownPaste this page into any AI assistant. It is plain, portable Markdown.

What dot gain is

Every printed element comes out slightly larger than it is in the file. Two mechanisms cause it. Mechanical gain: the press squeezes wet ink outward at the moment of impression, and absorbent paper wicks it further along the fibres. Optical gain: light entering the paper scatters sideways under the edge of each printed area, so the edge reads darker and wider than the ink physically is. Press operators measure the combined effect as tone value increase, and standards such as ISO 12647-2 publish expected curves per paper class.

Typical combined gain, midtone, offset litho:

Stock Typical gain
Coated (gloss or silk) 10–15%
Uncoated offset 20–25%
Newsprint ~30%

Why QR codes suffer more than photos

A photo absorbs gain gracefully. Everything gets a little darker. A QR code cannot, because gain is asymmetric: dark modules only grow at the expense of the light gaps between them. A single light module surrounded by dark neighbours is attacked from all four sides at once. The alternating timing pattern, a one-module checkerboard strip, is the most fragile structure in the symbol.

The decoder thresholds each sample against a local midpoint. As gaps narrow, more light samples fall on ink and flip dark. The code degrades quietly (it still looks like a QR code), until the error-correction budget runs out and it stops scanning. This is a common cause of a code that scans on screen but not in print.

In absolute terms, spread on uncoated stock adds a few hundredths of a millimetre per edge. That is noise for a 1 mm module and fatal for a 0.3 mm one, which is why the safe module floor rises from 0.4 mm on coated stock to 0.5 mm on uncoated (see size for print).

Never invert on absorbent stock

Gain punishes light-on-dark codes twice. In an inverted code the ink is the background, so spread shrinks every light module simultaneously, the whole symbol closes up rather than just its worst gaps. If the stock is uncoated, print dark modules on a light background, full stop.

Compensation strategies

  • Bigger modules. The cheapest fix. Shorten the payload so the code has fewer, larger modules at the same printed width, then check the arithmetic with the size calculator.
  • Respect the module floor. 0.4 mm coated, 0.5 mm uncoated, larger on newsprint.
  • Do not pre-thin the artwork yourself. Barcode prepress has a real technique (bar width reduction), where dark elements are shrunk in the file to cancel expected gain. It works when the printer applies it against a measured gain curve for their press and stock. Guessing a reduction in a design tool usually swaps one distortion for another.
  • Solid black, no screens. A module built from halftone dots gains far more than a solid, and it starts with less density. Use 100% K, not a rich-black or greyscale tint.
  • Proof on the production stock. Gain is a property of the press-plus-paper combination. A laser proof on office paper tells you nothing about newsprint.

Test by scanning, not by looking

A gained code can look acceptably sharp and still be past the threshold for a phone camera. Scan the actual printed proof with two or three phones, and check the payload decodes to exactly what you sent with the validator. The print checklist covers the rest of the pre-press run.

FAQ

What is dot gain on a QR code?

Dot gain is the growth of printed dark areas beyond their size in the file, caused by ink spreading mechanically and light scattering in the paper. In a QR code it narrows the light gaps between dark modules until the decoder can no longer separate them.

How much dot gain should I expect?

Roughly 10–15% on coated stock, 20–25% on uncoated offset paper and around 30% on newsprint. The more absorbent the paper, the more the ink wicks along its fibres and the larger the effective gain.

How do I stop ink spread ruining my QR code?

Use solid 100% black modules at least 0.5 mm wide on uncoated paper, keep the code dark-on-light, shorten the payload so modules stay large, and scan a proof printed on the production stock before the full run.

Should I shrink the dark modules to compensate for gain?

Not in your own artwork. Bar width reduction is a legitimate prepress technique, but it only works when applied against a measured gain curve for the specific press and paper. Ask the printer; do not guess.

Try it: free, no signup

  • What size should a QR code be?, Printed width should be at least the scanning distance divided by ten. A code read from 30 cm needs 3 cm; from 2 m, 20 cm; from 10 m, 1 m. If there is not…
  • QR codes on uncoated paper, Uncoated stock wicks ink: dot gain runs 15–25%, modules fatten and fine gaps close. Compensate with 0.5 mm modules and plain squares, and beware kraft.
  • QR codes in CMYK print, Keep modules at 100% K on a single plate. Four-colour black needs four plates in register, and ±0.1 mm of misregistration fringes every module edge.
  • Pre-press checklist for QR codes, Eight checks before any print run: scan a physical proof from the real distance, verify size against the ten-to-one rule, confirm the four-module quiet…