← All Tools

A PDF Size Analyzer's "Per-Page Size" Isn't Actually File Size

Guide · Last verified Aug 21, 2026

"I want to know which page of this PDF takes up the most space" seems like a natural request. But it's not widely known that answering that question with a precise number is fundamentally hard because of the structure of the PDF file format itself. Let's look at what the PDF size analyzer actually shows in its "per-page size" item, and the structural reason it can't show byte-level size.

1. A PDF page isn't an independent file fragment

If each page were a completely independent image file like a JPG or PNG, "how many KB is this page" would have a simple answer. But PDF isn't designed that way. Inside a PDF, "resource objects" like fonts, images, and color profiles are stored separately, and each page is built by "referencing" those resources. If the whole document uses the same font, that font data is stored exactly once in the file and every page points to the same object. So even with 100 pages, the font size is counted only once.

2. Where the "attribution problem" arises

Because of this shared structure, the very question "how many bytes is page 5" becomes ambiguous. Say a font file shared by the whole document is 500KB — should that 500KB be attributed to page 5, or only to the page that first uses the font, or split evenly across every page that uses it? There's no basis to call any of these "correct." The same goes for a single image inserted repeatedly across multiple pages. That's why a library like pdf.js doesn't provide a "per-page byte size" value at all.

Actual code behavior: this tool loads each page with pdf.getPage(i), then reads only the viewport's width and height (in points) via pg.getViewport({scale:1}). It converts these to mm and matches them against standard paper names (A4, Letter, etc.) within a ±5mm tolerance, and the bar chart is a relative comparison of this width (point) value across pages. Byte-level size is never computed anywhere.

3. What the "per-page size" bar chart actually shows

The bar chart on screen just draws a relative length based on each page's paper width. A wider page (a landscape page, for example) gets a longer bar, but that doesn't mean the page has lots of images or is large in file size. A text-only A4 page and an A4 page full of high-resolution photos have the same physical dimensions, so this tool displays them with the same bar length.

ItemWhat's actually computedWhat isn't
Per-page sizePhysical dimensions (points→mm, matched to standard paper name)Byte-level data size
Bar chart lengthRelative comparison of page width (points)That page's image/font usage

4. A misunderstanding by example

Suppose a 10-page PDF where only 3 pages hold 5 high-resolution photos each and the rest are pure text — the actual data size is very likely overwhelmingly concentrated in those 3 pages. But if every page is the same A4, this tool's "per-page size" bar chart shows all 10 pages at the same length. In other words, judging "which page is heavy" from this screen alone can lead you to the exact opposite conclusion.

5. If you need real per-page size

This tool processes the file entirely in the browser without uploading it to a server, and in exchange it only handles information pdf.js provides reliably (dimensions). If you want to know the actual per-page byte size, the most accurate approach right now is to use the "PDF optimization" report of a professional editor like Acrobat, or split the pages into individual files with a PDF page extractor and directly compare each file's size. If your goal is just to reduce the overall file size, using a PDF compressor directly is faster.

Frequently Asked Questions

Q. Isn't the name "per-page size" itself misleading, then?

A. Somewhat. The word "size" gets used for both data size and physical dimensions. In this tool it means the paper size (A4, Letter, etc.), and the on-screen FAQ and description state this.

Q. Do other PDF tools show per-page byte size?

A. Desktop editors like Adobe Acrobat sometimes provide a report that internally re-lays-out and computes resources per page during an optimization (rewrite) pass. But even there, how shared resources get attributed to pages depends on each tool's internal algorithm, so it's not an absolute answer.

Q. If I can't find the cause of a large file per page, how do I shrink it?

A. You can reduce the whole file without per-page analysis by lowering image compression quality or removing unnecessary embedded fonts. A PDF compressor re-encodes the whole document's resources in bulk with no per-page attribution, so it works regardless of this problem.

Q. Is the creation/modification date showing as a strange string the same issue?

A. That's a separate issue. The PDF standard stores dates in a format like D:20240115093000+09'00', and this tool just displays the raw string from pdf.js with no code to convert it into a human-readable form. Different cause from the page-size issue.