Scanned document file size calculator
Ten color pages scanned at 300 DPI on 8.5 × 11 inch paper come to 252,450,000 bytes before compression. Enter pages, resolution, page size and color depth to size a scan job, a network share or an upload quota before you press Start. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Pages
- 10 in
- Dpi
- 300
- Page width
- 8.5
- Page height
- 11
- Color depth
- 24
- Page width in
- 8.5 in
- Page height in
- 11
- Width px
- 2,550
- Height px
- 3,300
When you plan a multi-page office scan, archive job, or document-management upload quota, the first practical question is how large the resulting files will be before you press Start. File size is not a mystery: it follows from how many pages you capture, the scanner resolution in dots per inch, the physical width and height of each sheet, and whether each pixel is bitonal, grayscale, or full color. This scanned document file size calculator turns those four inputs into a deterministic byte estimate, with an optional compression ratio when you already know a typical codec shrinks the raw raster.
How scan resolution, page size, and color depth set file size
A flatbed or sheet-fed scanner samples a rectangle of paper at a chosen DPI. Convert the physical page width and height to inches, multiply each dimension by DPI, and you obtain the pixel grid for one page. Letter paper at 8.5 by 11 inches and 300 DPI becomes 2550 by 3300 pixels; A4 at 210 by 297 millimetres is slightly taller and narrower after the same conversion.
Color depth then decides how many bits each of those pixels stores: one bit for pure black-and-white bitonal scans common in fax-style archives, eight bits for grayscale, twenty-four bits for RGB color, and thirty-two bits when you model CMYK or RGBA channels. Bytes per page equal width in pixels times height in pixels times color depth divided by eight. Multiply by the page count for the uncompressed multi-page total.
That raw figure is the upper bound you should budget when compression is unknown or when a format stores nearly uncompressed samples. Real JPEG, JPEG 2000, or PDF pipelines often land well below the raw ceiling; the optional compression ratio multiplies the raw total so you can plug in a measured 0.05 to 0.2 factor from a pilot batch instead of inventing megabyte guesses.
The calculator never invents DPI or page size for you—you supply the same settings your scanner driver will use, so the estimate tracks the job you actually intend to run.
Where a scanned document size estimate earns its keep
Records teams sizing network shares before a backfile conversion need a defensible megabyte and gigabyte forecast from page volume and DPI policy, not a single test folder that may not match production color depth. Scanning bureaus quote jobs by page and resolution; giving clients a transparent file-size calculator reduces surprise when color at 600 DPI balloons storage versus bitonal at 200 DPI.
Document-management product pages that rank for scanned document file size calculator benefit from a live tool that explains the formula instead of a static blog table that ages out of date.
What you can do with it
Storage planning for backfile conversion
Estimate gigabytes for tens of thousands of pages at a chosen DPI and color depth before provisioning object storage or NAS capacity.
Scanner policy and client quotes
Show customers how 300 DPI color versus 200 DPI bitonal changes file size when quoting multi-page office scan jobs.
FAQ
Which color depths are supported?
1 bit (bitonal black-and-white), 8 bit (grayscale), 24 bit (RGB color, default), and 32 bit (CMYK or RGBA).
How big is a 10-page color scan at 300 DPI?
A letter page of 8.5 × 11 inches at 300 DPI is 2550 × 3300 pixels. At 24-bit color each page takes 25,245,000 bytes, so ten pages total 252,450,000 bytes before any compression.
How do I account for compression in the estimate?
Enter a compression ratio above 0 and up to 1, ideally measured on a pilot batch, such as a factor between 0.05 and 0.2. The default of 1 gives the raw size, the upper bound to budget for.
Why does a color scan at 600 DPI take so much more space than black and white at 200 DPI?
The resolution multiplies both the width and the height, so the pixel count grows with the square of the DPI. On top of that, each color pixel stores 24 bits, while a black-and-white pixel stores just 1.
Can I enter the page size in millimetres or centimetres?
Yes. The page size can be in inches, centimetres or millimetres, with inches as the default so letter-size examples need no conversion. An A4 sheet is simply 210 × 297 millimetres.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/image/scan-file-size \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pages":10,"dpi":300,"page_width":8.5,"page_height":11}'const res = await fetch("https://api.kit.forhosting.com/image/scan-file-size", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pages": 10,
"dpi": 300,
"page_width": 8.5,
"page_height": 11
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/scan-file-size",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pages": 10,
"dpi": 300,
"page_width": 8.5,
"page_height": 11
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/scan-file-size", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pages":10,"dpi":300,"page_width":8.5,"page_height":11}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pages":10,"dpi":300,"page_width":8.5,"page_height":11}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/scan-file-size", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"pages": 10,
"dpi": 300,
"page_width": 8.5,
"page_height": 11
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.scan_file_size",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_mb | 15 |
max_megapixels | 12 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Use it free in the browser or call the same pure logic over the API so storage planners, MFA policies, and batch-scan scripts all agree on the same numbers without guessing from a single trial PDF.
Input contract, units, defaults, and response fields
Optional unit is one of in, cm, or mm and defaults to inches so US Letter examples need no conversion. POST a JSON body with four required finite numbers: pages as a positive integer page count; dpi as a positive scan resolution; page_width and page_height as the physical size of one page. Optional color_depth is one of 1, 8, 24, or 32 and defaults to 24 for RGB office color. Optional compression_ratio must lie in the open-closed interval from zero exclusive to one inclusive; the default one means report uncompressed raw size. Missing fields, non-positive dimensions, non-integer pages, unsupported depth values, or a compression ratio outside the allowed range fail with invalid_input naming the problem; validation failures are not billed. On success the response echoes pages, dpi, unit, and the input page dimensions, plus page_width_in and page_height_in after conversion, width_px and height_px for the per-page raster, color_depth, a color_mode label, bits_per_pixel, bytes_per_pixel, pixels_per_page, bytes_per_page_raw, total_bytes_raw, compression_ratio, total_bytes after compression, size_kb, size_mb, size_gb, a human size_label, the formula string, and method scan_file_size. Alias keys such as page_count, resolution, width, height, and bits_per_pixel are accepted so scanner scripts can reuse existing field names.
Where a scanned document size estimate earns its keep
Developers wiring upload limits can call this parse endpoint to reject or warn when projected total_bytes exceeds a plan tier, using the same math shown to end users. Keep requests small, pin size_mb in tests for your standard Letter and A4 presets, and you get reproducible storage planning without standing up a dummy scanner farm for every what-if DPI change.
Integration use cases
Upload limit and quota checks
Compute projected total_bytes from form fields and warn when a batch would exceed DMS or API upload quotas.
Technical questions
How is scanned document file size calculated?
Convert page width and height to inches, multiply each by DPI for pixel dimensions, multiply by (color_depth/8) for bytes per page, then by pages and optional compression_ratio.
Can I enter A4 size in millimetres?
Yes. Set unit to mm and pass page_width 210 and page_height 297 for A4, or use cm or inches for other paper sizes.
What does compression_ratio mean?
A factor in (0, 1] applied to the raw raster total. Use 1 for uncompressed size; use a measured fraction such as 0.1 when you expect about 10:1 compression.
What does the scanned document file size calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.