BROWSER JS · CLIENT-SIDE · WASM

Split multi-page TIFF into per-page images, in the browser.

Point a file input at a multi-page TIFF and get one image per page. Decoding happens client-side via WebAssembly, so the file never leaves the browser. No upload, no server round-trip.

Runs on the device, no upload Group 4, LZW & packbits decoding Per-page PNG, JPEG, or WebP
WHAT IT DOES

Split every page out, locally in the browser

  • ✓ Split a multi-page TIFF into one image per page in a single call
  • ✓ Runs client-side via WebAssembly, so nothing uploads and no server is involved
  • ✓ Decodes common TIFF compressions: Group 4 fax, LZW, packbits, and uncompressed
  • ✓ Export each page as PNG, JPEG, or WebP, or hand back raw pixel data
  • ✓ Keeps the source per-page DPI, bit depth, and dimensions
  • ✓ Reads pages on demand, so documents with hundreds of pages stay responsive
  • ✓ Nothing leaves the device, transmitted or stored
javascript
// Everything runs locally via WebAssembly, nothing is uploaded
import { DocumentTools } from "@abscode/browser";

const tools = await DocumentTools.load();
const pages = await tools.extractTiff(file);

pages.forEach((page) => {
  const url = URL.createObjectURL(page.blob);
  gallery.appendChild(makeThumb(url));
});
USE CASES

Common scenarios

Archival viewers

Open decades-old scanned TIFF archives one page at a time in a web viewer, without shipping gigabytes to a server.

Per-page preview

Render a live preview of any single page as the user pages through a multi-image document, decoding only what's on screen.

Fax & scan splitting

Break inbound Group 4 fax TIFFs into separate page images for routing, indexing, or human review.

Thumbnailing

Generate per-page thumbnails on the client to build document gallery grids that load quickly.

Banking imaging portals

Let customers view cheque and statement TIFFs page by page inside a portal, with nothing leaving the browser.

Per-page processing

Split first, then feed each page into browser compression or format conversion in the same session.

PRICING

Priced for every team

Included in the browser SDK license. Pricing shown in your local currency.

Affordable to all

Extraction runs on the device, so there are no per-page server costs to pass on. One flat license covers everything from a single TIFF a day to thousands per user.

See pricing →

FAQ

Common questions

Can I split a multi-page TIFF into separate images without uploading it?
Yes. The whole extraction runs in the browser through WebAssembly, so a multi-page TIFF is decoded on the device and split into one image per page without ever being uploaded to a server. There is no server round-trip and nothing is transmitted or stored off the device.
Which TIFF compression types can it decode in the browser?
It decodes the TIFF encodings that scanners and fax systems produce: CCITT Group 4 fax, LZW, packbits, and uncompressed TIFF. Both single-page and multi-page TIFF files are supported, and each page is read straight from the original file.
What image formats can each extracted page be saved as?
Each page can be exported as PNG, JPEG, or WebP, or handed back as raw pixel data for further processing. That lets you build thumbnails, previews, or downloads without a separate encoding step.
Can it handle TIFFs with hundreds of pages without freezing the browser?
Yes. Pages are read on demand rather than decoding the entire file at once, so documents with hundreds of pages stay responsive. You can also read the total page count up front, then extract only the pages you actually need to display.
Does extraction preserve each page's original DPI and detail?
Yes. Each extracted page keeps the source per-page DPI, bit depth, and pixel dimensions, so a 300-DPI scanned page comes out at 300 DPI. The extraction step itself adds no drop in output quality.
Is it safe for confidential scans like cheques or medical records?
Yes. Because decoding happens client-side via WebAssembly, the file is never transmitted or stored off the device, which suits cheque, statement, and medical-record images. This keeps sensitive documents inside the user's browser and out of any server logs.
How do I integrate it, and what does each call return?
It is a JavaScript library that loads a WebAssembly module in the browser, with no plugin, upload endpoint, or backend to deploy. A single call returns one image per page, and every method resolves to a result object with STATUS, DESCRIPTION, and DATA fields instead of throwing, so it fits cleanly into async/await error handling.
How is browser TIFF extraction licensed, and can I try it first?
It is included in the browser SDK license, and because extraction runs on the device there are no per-page server costs. You can try it free first — the unlicensed demo runs the full pipeline and marks its output with a watermark band that disappears once licensed. See pricing for plans.
THE FULL TOOLKIT

Explore the rest of the Browser JS Library

One license, every capability — take this and you also get all of these.

Try browser TIFF extraction with the free trial

Free signup credit. No card required.