Estimating Print Size — From Pixels and DPI 2025

Published: Sep 19, 2025 · Reading time: 3 min · By Unified Image Tools Editorial

Introduction

When preparing web images for print, start from the final trim size and work backward to the pixels you need. This guide covers a reliable way to estimate pixels from size and DPI, common pitfalls, and a simple workflow that scales from flyers to large posters.

Quick calculator & tools

The basic formula

Required pixels = final inches × DPI

In practice, the calculator above prevents unit mistakes and makes it easy to try different DPIs. Do trimming up front with the Cropper, then export the final size in a single pass with the Resizer.

Practical DPI ranges

  • General commercial printing: 300 dpi target
  • Posters/outdoor: 150–200 dpi (long viewing distance)
  • Small booklets/zines: 250–300 dpi

Lower DPI can still look smooth if the viewing distance is long. Design with the viewing distance in mind.

Unit conversions (mm/cm ↔ inch ↔ px)

  • 1 inch = 25.4 mm = 2.54 cm
  • px = inch × DPI
  • inch = px ÷ DPI
  • mm = inch × 25.4

Example: A4 portrait (210 × 297 mm) at 300 dpi

  • 210 mm → 8.27 in → 8.27 × 300 ≈ 2481 px
  • 297 mm → 11.69 in → 11.69 × 300 ≈ 3507 px

Prepare at least 2481 × 3507 px (plus bleed handled in layout).

Typical sizes and required pixels (at 300 dpi)

  • Business card (55 × 91 mm) → ~650 × 1075 px
  • Postcard (100 × 148 mm) → ~1181 × 1748 px
  • A5 (148 × 210 mm) → ~1748 × 2481 px
  • A4 (210 × 297 mm) → ~2481 × 3507 px
  • B5 (182 × 257 mm) → ~2146 × 3035 px

Trimming and bleed

  • Add 3 mm bleed around the edges for safe trimming
  • Keep important content (faces, logos, text) 3–5 mm inside the trim
  • If aspect ratio doesn’t match, prioritize composition: crop first, then extend background color into remaining margins

Handy TypeScript utilities

export function pxFromMm(mm: number, dpi: number) {
  const inch = mm / 25.4
  return Math.round(inch * dpi)
}

export function pxFromCm(cm: number, dpi: number) {
  return pxFromMm(cm * 10, dpi)
}

export function sizeForPrint(widthMm: number, heightMm: number, dpi = 300) {
  return { w: pxFromMm(widthMm, dpi), h: pxFromMm(heightMm, dpi) }
}

Use these in Next.js pipelines or internal tools to keep outputs consistent.

Export order and sharpness

  • Trim first → export to final pixels in a single pass
  • Apply a light unsharp mask at the end (radius 0.3–0.5 px, amount 50–80%)
  • Confirm working color space and any required ICC profile (many printers accept sRGB; some require CMYK)

DPI by use case

  • Photo-heavy catalog/book → 300 dpi
  • Text-heavy documents → 240–300 dpi (prioritize layout size/weight over extreme sharpness)
  • Exhibition posters (A1/A0) → 150–200 dpi (viewing distance 1–2 m)

When the source is too small (upscaling)

  • Prefer replacement/re-shoot/re-export. If impossible, combine a high-quality upscaler with careful sharpening
  • Continuous-tone photos upscale better than text/logos; vectorize or re-draw logos and UI shapes

Color and print quality

  • Declare the ICC profile; follow the printer’s submission guide (e.g., JapanColor, GRACoL)
  • Background gradients/banding can appear in print; add subtle noise if needed
  • Screen and paper change perceived contrast; do a test print for critical work

Preflight checklist

  • Final trim size (mm) → required px satisfied
  • DPI chosen fits the use case
  • 3 mm bleed set; key content safely inside the trim
  • Color space/ICC aligned (sRGB or printer-specified CMYK)
  • Final export is single-pass with a light sharpen

Summary

Work backward from size and DPI, set bleed and composition early, export once to the final pixels, and keep sharpening modest. Choose DPI by viewing distance, and be explicit about color/ICC for predictable results.

Related Articles