It Just Works—Even With Weird PDFs

Some PDFs contain JPEG 2000 compressed images that browsers and most tools can't handle. We decode them automatically. You don't need to know what JPEG 2000 is—just upload any PDF and it works.

Try It Now

The Problem (Technical)

Some PDFs—especially from professional design tools (Adobe InDesign) or certain scanners—contain JPEG 2000 (.jp2, .jpx, .j2k) compressed images instead of standard JPEG.

Issue: Browsers can't decode JPEG 2000. PDF viewers fail to render images. Other invoice tools error out or show blank pages.

Our solution: We detect JPEG 2000 images and decode them using OpenJPEG (WASM). You never see an error—it just works.

What This Means for You

✓ Upload Any PDF

Don't worry about "is this PDF compatible?" Just upload it. If it has JPEG 2000 images, we decode them. If not, we process normally. You don't need to think about it.

✓ No "Unsupported Format" Errors

Other tools show "Error: Cannot decode image" or "Unsupported format". Instant Invoice handles it silently. Your invoice generates successfully.

✓ Professional Invoices Keep Logos/Headers

Many contracts have company logos in JPEG 2000 format. Our OCR extracts text from those logos/headers (e.g., company address in logo area). Other tools miss this data.

Technical Details (For Nerds)

Detection: We check for JP2 magic headers (00 00 00 0C 6A 50 20 20) and codestream markers (FF 4F) to identify JPEG 2000 images.

Decoder: @abasb75/openjpeg package (WASM port of OpenJPEG library). Handles JP2, JPX, and J2K formats.

Fallback: Safari supports createImageBitmap for some JP2 files. We try native decoding first, then WASM if that fails.

Normalization: 16-bit images downsampled to 8-bit with min-max scaling for consistent color rendering.

Performance: Decoding typically takes <100ms per image. Minimal user-facing delay.

Just Upload. We Handle the Rest.

JPEG 2000, JPEG, PNG, scanned PDFs, photos—we process them all.

Try It Free