All PDF Tools
Navigation
Home
PDF Tools
🔒 Your PDF never leaves your device

PDF Size Analyzer

Find out exactly why your PDF is large — images, fonts, metadata, or compression — with a full diagnostic report and optimization score. 100% browser-based, nothing uploaded.

Drop your PDF to analyze its size

Click to browse or drag & drop

No signup 100% private SSL encrypted

Analyzing…

Reading document structure

Couldn't analyze this file

Something went wrong.

Pair PDF Size Analyzer With These Tools

TL;DR — Analyze your PDF's size in seconds

  • What it does: reads your PDF's internal object structure — images, fonts, content streams, metadata, annotations — and shows exactly which components are consuming file size, page by page.
  • How to use it: upload your PDF and the report generates automatically; no button to click, no settings to configure.
  • Privacy: everything runs client-side in your browser using pdf.js and pdf-lib — your file is never uploaded to a server, and analysis works offline once the page has loaded.
  • Cost & limits: completely free, no signup, no daily cap, and works on files up to roughly 100 MB / 1,000 pages directly in the browser (larger files depend on your device's available memory).
  • Limitation: this is a diagnostic report, not an editor — it estimates size contribution and potential savings from real structural signals, but it does not modify your PDF. Use the linked tools above to act on what it finds.

Quick Guide

How to Analyze a PDF's Size

Three steps, no configuration — the report generates automatically the moment your file finishes loading.

1

Upload your PDF

Drag and drop a PDF onto the upload zone, or click to browse. The file loads directly into your browser's memory — it is never sent anywhere.

2

Let it analyze

PDFcrest reads the document's internal object structure — images, fonts, content streams, metadata — and attributes size to every page. Most files finish in a few seconds.

3

Read the report

Review the size breakdown, optimization score, and page-by-page detail, then jump to Compress PDF, Edit Metadata, or another tool to act on what it finds.

Why PDFcrest

Deeper Than a Compressor

Compressors guess at settings. PDFcrest's analyzer shows you the actual internal structure first, so you know exactly what you're optimizing.

Page-by-Page Breakdown

See exactly which pages, images, and fonts are responsible for size — not just a single number for the whole file.

100% Client-Side — Nothing Uploaded

Analysis runs entirely in your browser with pdf.js and pdf-lib. Your PDF is never sent to a server, so there's nothing to intercept, store, or leak.

Real Optimization Score

A documented, transparent scoring model — not a marketing number — built from real image DPI, font embedding, and compression signals in your file.

Works on Huge Files

Built to handle scanned books and 1,000-page engineering drawings without freezing the tab, by yielding back to the browser between batches.

Exportable JSON Report

Download the full analysis — stats, scores, and page data — as JSON for your own records, tickets, or archival workflows.

Completely Free, No Signup

No account, no watermark, no daily cap on how many PDFs you can analyze.

Comparison

PDFcrest vs. Other PDF Tools

Most "PDF size" tools just show the file size Windows already tells you. Here's what an actual diagnostic analyzer adds.

FeaturePDFcrestAdobe Acrobat ProSmallpdf / iLovePDFPDF24
Page-by-page size breakdownYesYes (desktop only)NoNo
Image / font contribution chartYesPartialNoNo
Optimization score with formula shownYesNoNoNo
Runs 100% in-browser (no upload)YesNoNoNo
Free with no daily limitYesSubscriptionCappedYes
Exportable JSON diagnostic reportYesNoNoNo
Requires an accountNoYesOftenNo

Who Uses This

Use Cases & Who Should Use This Tool

Anyone who has ever asked "why is this PDF so huge?" — a diagnostic step before compressing, emailing, or archiving.

⚖️

Law Firms

Diagnose why scanned contracts and discovery bundles balloon past email attachment limits before sending.

🏗️

Architects & Engineers

Find which pages in a set of drawings carry oversized raster images so only those pages need re-export.

🏛️

Government & Archives

Audit legacy scanned records for bloated, uncompressed images before long-term digital storage.

🩺

Healthcare Providers

Check imaging-heavy patient records for optimization opportunities without ever uploading protected health data.

🎓

Students & Teachers

Understand why a scanned textbook chapter or slide deck export is too large to submit or share.

🖨️

Publishers & Designers

Check embedded font subsetting and image DPI before sending a print-ready or web PDF downstream.

🏢

Corporate IT & Document Management

Triage which PDFs in a shared drive are worth optimizing before a storage-quota cleanup.

Workflow Recipes

Common PDF Size Analyzer Workflows

Analyzing is rarely the last step — here's how it fits into a real optimization workflow.

Diagnose, then compress

See exactly what's inflating the file, then apply targeted compression instead of guessing at a quality slider.

Analyze sizeCompress PDF

Strip metadata bloat

When the report flags a large XMP or Info payload, remove it directly instead of guessing what's in it.

Analyze sizeEdit Metadata

Cut structural dead weight

If the page map shows near-empty or repeated pages carrying real byte weight, remove them before touching images.

Scanned document audit

Confirm a document is image-only (no text layer), then make it searchable before archiving.

Analyze sizeOCR PDF

User Feedback

What People Say

★★★★★

"Finally something that tells me *which* pages are the problem instead of just re-compressing everything and hoping."

— Architecture project coordinator

★★★★★

"Ran it on a 400-page scanned archive and it flagged the exact 12 pages scanned at the wrong DPI. Saved a lot of guesswork."

— Records management lead

★★★★★

"Being able to see it never leaves the browser matters a lot when the PDFs are client contracts."

— Paralegal

Related Searches

People Also Search For

why is my pdf so large pdf size report pdf optimization analyzer analyze pdf images and file size pdf compression analysis tool check pdf optimization level identify large pages in pdf analyze scanned pdf size pdf file diagnostic tool estimate pdf compression savings analyze embedded fonts in pdf pdf storage analyzer

The Complete Guide

Understanding PDF Size: Why Files Get Large and How Analysis Works

What Is a PDF Size Analyzer?

A PDF size analyzer is a diagnostic tool that looks past the single number your operating system shows for a file's size and examines the document's internal structure — the images, fonts, page content, metadata, and other objects a PDF is actually built from — to determine which of those components is responsible for how large the file is. Where a compressor simply re-encodes everything and hopes for a smaller result, an analyzer answers a more useful question first: why is this file 40 MB, and which of those megabytes can realistically be recovered? PDFcrest's PDF Size Analyzer does this entirely inside your browser, reading the file's cross-reference table and every indirect object it points to, without ever uploading the document anywhere.

Why PDF Files Become Large

A PDF is a container format, and its size is the sum of everything embedded inside it. The most common contributors are high-resolution scanned images (a single page scanned at 600 DPI in color can easily exceed 10 MB on its own), uncompressed or poorly compressed images, embedded fonts that include glyphs never used in the document, duplicated resources that a producer failed to deduplicate, complex vector graphics with thousands of path operations, transparency layers and soft masks that force more expensive rendering data, file attachments, verbose XMP or custom metadata, digital signature byte ranges, and interactive form field data. Most real-world "why is this PDF huge" cases trace back to one or two of these — usually images — rather than an even spread across all of them, which is exactly why a page-by-page, component-by-component breakdown is more useful than a single compression pass.

How PDF Size Analysis Works

PDFcrest's analyzer follows a six-stage pipeline entirely in JavaScript, using the open-source pdf-lib and pdf.js libraries: (1) parse the file's low-level object graph via pdf-lib's enumerateIndirectObjects(), which walks every indirect object in the file exactly as stored, without inflating or re-encoding any of it; (2) inspect each object's dictionary to classify it — image, font, annotation, form XObject, pattern, extended graphics state, or anonymous content stream; (3) enumerate every page and its inherited resource dictionary, mapping which images, fonts, and graphics states each page actually references; (4) attribute each object's real, on-disk (already-compressed) byte size to the pages that use it — content streams belong fully to their one page, while resources shared across multiple pages are split proportionally; (5) sum those contributions into per-page and whole-document totals for images, fonts, page content, metadata, and other structural objects; and (6) run those totals through a documented scoring model (see "Under the Hood" below) to produce a Complexity Score, an Optimization Score, and a realistic savings estimate.

Understanding PDF Components

Images are stored as XObjects with a Width, Height, bit depth, and a compression filter (DCTDecode for JPEG, CCITTFaxDecode for scanned black-and-white fax-style images, FlateDecode for lossless raw pixels, or JBIG2Decode for bitonal scans) — the filter and resolution together largely determine an image's byte footprint. Fonts can be embedded in full or "subset" (trimmed to only the glyphs the document actually uses, indicated by a six-letter prefix like ABCDEF+Arial); a fully embedded, unsubset font can add hundreds of kilobytes for glyphs that are never rendered. Vector graphics and text live inside page content streams as sequences of drawing operators; dense technical drawings with thousands of path segments produce much larger content streams than a simple text page. Metadata includes the classic Info dictionary (title, author, keywords) and an optional XMP stream, which some editing tools bloat with revision history. Annotations, form fields, and layers (Optional Content Groups) each add their own dictionary overhead and, in the case of form fields with appearance streams, can duplicate rendering data. Transparency — soft masks and non-opaque graphics states — increases rendering complexity and frequently correlates with larger, higher-bit-depth image data underneath it.

Why Images Usually Dominate PDF Size

For any document produced by scanning paper or exporting a photo-heavy layout, images are almost always the largest contributor, and the reason is arithmetic: an uncompressed 8.5×11" page scanned at 300 DPI in 24-bit color contains roughly 24 million pixels at 3 bytes each — over 70 MB before any compression is applied. JPEG (DCTDecode) compression typically brings that down by 90–98%, but scans saved at unnecessarily high DPI (1200 DPI is common from default scanner presets, four times the pixel count of 300 DPI for the same physical page), in an uncompressed or lightly-compressed format, or as full-color when the source is really black-and-white text, all leave enormous, easily recoverable size on the table.

PDF Optimization Best Practices

When the analyzer's report points to images, the standard fixes are: scan text documents at 200–300 DPI rather than 600–1200 DPI, use JPEG compression for photographs and CCITT/JBIG2 for pure black-and-white scans rather than PNG-style lossless encoding, and recompress rather than re-scan when possible. When it points to fonts, subsetting embedded fonts to only the glyphs used typically recovers the largest share with zero visual change. When metadata is flagged, stripping unused XMP and Info fields is free size with no quality tradeoff. When it points to page content, flattening unnecessary transparency groups and removing duplicate or blank pages before compressing anything else avoids wasting compression effort on pages that shouldn't exist in the first place.

Pro tip: Always analyze before you compress. Running a generic "high compression" pass on a PDF that's already well-optimized (or where the real problem is 40 duplicate pages, not image quality) either does nothing or destroys visual quality for no size benefit. The report's Optimization Score and per-page breakdown tell you which lever is actually worth pulling.

Under the Hood

How the Scores Are Actually Calculated

This is the real formula implemented in this page's own JavaScript — an analytical scoring model for diagnostics, not an official part of the PDF specification (ISO 32000).

Complexity Score = (Image Weight × 0.35) // % of file size that is image data + (Font Weight × 0.20) // min(100, distinct fonts × 20) + (Vector Weight × 0.15) // min(100, avg vector ops/page ÷ 50 × 100) + (Transparency × 0.15) // % of pages using transparency/soft masks + (Annotations × 0.10) // min(100, avg annotations/page × 20) + (Metadata Weight× 0.05) // min(100, metadata bytes ÷ 51,200 × 100) Optimization Score = 100 − (image penalty + font-subset penalty + font-embed penalty + metadata penalty + object-stream penalty + uncompressed-stream penalty)
SignalWhat it actually measures
Image WeightTotal bytes of every Image XObject in the file (raw, already-compressed stream size — no re-inflation) divided by total file size.
Font WeightCount of distinct font objects referenced anywhere in the document; capped at 100 once 5 or more distinct fonts are present.
Vector WeightAverage count of path-drawing operators (re, l, c) found per page's content stream, sampled from up to the first 20 KB of each stream.
TransparencyPercentage of pages whose graphics state dictionary sets ca/CA below 1 or includes a soft mask.
AnnotationsAverage annotation count per page (links, form fields, comments, stamps), capped at 100 once average reaches 5 per page.
Metadata WeightCombined size of the XMP metadata stream plus Info-dictionary string fields, scaled against a 50 KB reference ceiling.
Image penalty (≤35)Share of distinct images whose effective DPI — pixel width ÷ (page width in inches) — exceeds 300 for the page they appear on.
Font penalties (≤20 + ≤15)Share of fonts that are not subset (name lacks a six-letter subset prefix) and share that have no embedded font program at all.
Object-stream penalty (10)Flat penalty if the file contains no compressed object streams (/Type /ObjStm) — an older, less space-efficient cross-reference format.
Uncompressed-stream penalty (≤10)Share of total content-stream bytes stored with no /Filter entry at all.

Estimated savings are calculated the same way: oversized images assume a 55% recoverable reduction from downsampling and recompression, unsubset fonts assume 60% recoverable from subsetting, uncompressed content streams assume 50% recoverable from standard Flate compression, and non-trivial metadata (over 2 KB) is counted as fully removable. These are estimation heuristics, not guarantees — actual results depend on the compression settings used and the specific tool applied afterward.

FAQ

Frequently Asked Questions

A PDF Size Analyzer examines a PDF's internal object structure — images, fonts, page content streams, metadata, and other objects — to show exactly which components are responsible for the file's size, rather than just reporting the total size itself.
Each page's estimated size is its own content stream bytes plus a proportional share of every image, font, and other resource it references, divided by how many other pages share that same resource. Shared-resource attribution is an estimate, since one embedded font or image can genuinely belong to several pages at once.
In most real-world cases it's images — usually scanned pages saved at a higher DPI or lower compression than necessary. Run the analyzer to see your document's actual breakdown; fonts, metadata, and page content streams are also common but less frequent culprits.
Yes. It reports each image's pixel dimensions, compressed byte size, effective DPI relative to the page it's placed on, and compression filter (JPEG, CCITT fax, Flate, or JBIG2), and flags images rendering above roughly 300 DPI as likely oversized.
Yes. For every font it reports whether a font program is embedded (via FontFile/FontFile2/FontFile3), whether the font is subset to only the glyphs actually used (indicated by a six-letter name prefix), and whether it appears to be referenced by any page at all.
Yes. It estimates recoverable bytes from oversized images (assuming roughly 55% reduction from recompression), unsubset fonts (roughly 60% from subsetting), uncompressed content streams (roughly 50% from standard Flate compression), and removable metadata — shown as a total estimated savings percentage. These are estimation heuristics based on real signals in your file, not guarantees.
No. PDFcrest's PDF Size Analyzer runs entirely in your browser using pdf.js and pdf-lib. The file is read into local browser memory and never transmitted anywhere.
Yes, once the page and its scripts have loaded, analysis itself requires no network connection — every step runs locally in JavaScript.
Yes. Scanned PDFs are usually one large image per page with little or no text content stream data — the analyzer surfaces this directly by showing each page's image count, image DPI, and how little of the page is made of text/vector operators.
No. This is a read-only diagnostic tool — it never writes changes back to your file. Use the linked Compress PDF, Edit Metadata, or other tools to act on what the report finds.
It can still read and report the document's structure and object sizes for encrypted PDFs, and a banner flags the file as encrypted. However, some derived signals — like the text/vector operator ratio pulled from content streams — may be less precise since those streams remain in their encrypted form.
Object counts, byte sizes, and metadata fields are read directly from the file's real structure and are exact. Per-page size attribution, DPI-based image flags, and all scores are analytical estimates built on top of those real numbers — see the Under the Hood section for the exact formulas used.
Yes. Open pdfcrest.com/pdf-size-analyzer in any modern mobile browser and upload a PDF from your device or cloud storage. Very large files may analyze more slowly on mobile hardware.
Yes, completely free with no signup, no watermark, and no daily limit on how many PDFs you can analyze.
For most PDFs, recompressing and downsampling oversized images recovers the most space by far, followed by subsetting embedded fonts. Removing metadata and enabling stream compression typically recover much smaller amounts unless the file was produced by an unusually verbose editor.
A 0–100 score combining image share, font count, vector-graphics density, transparency usage, annotation density, and metadata size into a single weighted number, labeled from Very Simple to Extremely Complex. It describes how structurally complex the PDF is, not how large it is.
A 0–100 score starting at 100 and subtracting penalties for oversized images, unsubset or unembedded fonts, missing content-stream compression, absent object streams, and metadata bloat. Higher means less low-hanging optimization fruit remains in the file.
PDF Size Analyzer is read-only diagnostics — it explains what's making a file large and estimates potential savings, without changing anything. Compress PDF actually re-encodes images and rebuilds the file to reduce its size. Use the analyzer first to know what's worth compressing.
Yes, it's designed to. Object enumeration and page analysis run in small batches that yield back to the browser between chunks so the tab stays responsive, and only the top 10 largest pages are rendered as thumbnails to keep memory use low regardless of page count. Very large files (100+ MB) may still take noticeably longer depending on your device's available memory.
A single embedded font or image object can be referenced by many pages in a well-built PDF. Document-wide totals (like total font bytes) count each distinct object once; per-page estimates instead divide that object's size proportionally across every page that uses it, so the two views can look different but both add up correctly.
A subset font is trimmed to include only the specific letterforms (glyphs) a document actually uses, and its name carries a six-letter prefix like ABCDEF+Arial. An unsubset, fully embedded font includes every glyph in the entire typeface — often hundreds of kilobytes for characters that never appear on the page.
A color- and height-coded chart with one bar per page: taller, darker bars are larger estimated pages, lighter bars are smaller ones. Hovering a bar shows the exact page number and estimated size, and a table view toggle gives the same data as plain text for accessibility or copy-paste.
Yes. The "Export JSON Report" button downloads a structured JSON file containing every statistic, score, recommendation, and per-page figure shown in the dashboard, along with the analysis timestamp.
No. Analysis is entirely read-only — your original file, including all of its metadata, is completely untouched. If the report flags heavy metadata, use PDFcrest's Edit Metadata tool to actually remove it.
A page can be large purely from a complex vector-graphics content stream (dense CAD drawings, for example) or from embedded/shared font data, with no raster images involved at all — the per-page breakdown and Object Analysis table show exactly which component is responsible.
It serves a similar diagnostic purpose but runs free, in any browser, with no Acrobat license — and unlike Acrobat's audit view, it never uploads or requires opening the file in a desktop application. It is a diagnostic report rather than an in-place optimizer, so pair it with PDFcrest's Compress PDF or Edit Metadata tools to apply changes.
If the file cannot be parsed as a PDF at all, a clear error message explains that. If it parses but contains individual malformed objects, those specific objects are skipped and counted, while the rest of the document is still analyzed and reported normally.
Yes, it checks for the /Linearized marker near the start of the file and reports it in the File Information table, along with whether the file uses modern compressed cross-reference (object) streams versus an older plain cross-reference table.

References & Further Reading

Sources