Actual Size Lab guide

Methodology, formulas and limits.

The calculations are simple; the print workflow is not. This page documents both what the tool controls and what it cannot.

Scope of the project

Actual Size Lab solves a narrow problem: translating an image's pixel dimensions into a requested physical placement on an A4 PDF and explaining the settings needed to preserve that placement while printing.

It is not a colour-management system, printer driver, image editor, passport-photo compliance checker or calibrated measuring device.

Unit conversions

1 inch = 25.4 millimetres
1 centimetre = 10 millimetres
1 PDF point = 1/72 inch

The site keeps millimetres as the internal physical unit, then converts to inches for PPI and to PDF points for page placement.

Aspect-ratio handling

The user can enter both physical width and physical height. With aspect-ratio lock enabled, changing either dimension recalculates the other from the source ratio (source width divided by source height). With the lock disabled, both dimensions remain independent and the exported image is stretched to those values.

Effective source PPI

horizontal PPI = source width pixels ÷ requested width inches vertical PPI = source height pixels ÷ requested height inches

The interface reports one value when both axes round to the same PPI, or horizontal × vertical values when they differ. These values describe source-image sampling at the requested size, not the printer’s ink-dot resolution.

PDF construction

The browser resamples the placed image to the selected sampling value, converts it to a high-quality JPEG stream on a white background and embeds it into a minimal PDF 1.4 document. The page MediaBox uses the selected paper dimensions and orientation in points. Placement coordinates are calculated from the requested millimetres and from the image’s top-left position in the layout.

The optional reference line is 100 mm in PDF coordinates. It is intentionally simple so a physical ruler can reveal page-level scaling.

Local processing model

File selection uses a temporary object URL. Decoding, resampling and PDF assembly happen in browser memory. There is no image-upload API in this static package. The temporary URL is revoked after use or disappears when the tab closes.

Hosting infrastructure can still receive ordinary request metadata such as IP address, user agent and requested URL. Those requests deliver the website files, not the selected image.

Rounding and numerical precision

Display labels round millimetres to one decimal place, centimetres and inches to two decimal places, and PPI to the nearest integer. PDF placement uses floating-point point values with three decimal places. Raster dimensions are rounded to the nearest whole pixel because partial pixels do not exist.

Validation procedure

The release package includes automated checks for internal links, metadata, structured data, sitemap coverage, JavaScript console errors, calculator outputs, local file processing, PDF page dimensions and random conversion cases. These tests reduce software mistakes but cannot validate a user's printer hardware.

Known limitations

  • Animated GIFs are not exported as animation.
  • Transparent pixels become white in the PDF image stream.
  • Very large 600 PPI exports may exceed browser memory and are blocked.
  • Supported page sizes are fixed presets; custom dimensions and poster tiling are not included.
  • Image rotation is intentionally limited to 0°, 90°, 180° and 270°.
  • Colour profiles and print colour accuracy are outside scope.
  • Printer margins and mechanics remain external variables.

Corrections and versioning

Material corrections are reflected in the page update date and release notes. Report a reproducible calculation or wording problem to its.me.jsKim@gmail.com. Include browser, operating system, input values and observed output when relevant.

About this guide

This article is original editorial content from Actual Size Lab. It explains the same formulas and limitations used by the site's browser tools. Corrections can be sent through the contact page.