To compare two PDF files, load both below and hit Compare. The tool extracts each page's text with pdf.js, pairs the pages up, and diffs them word by word with jsdiff: removed text struck out on the left, added text highlighted on the right, a change summary on top (words removed, words added, pages only in one file). A contract page where the fee changed from $49.00 to $59.00, the rate from 1.5% to 1.75%, and Friday support became Saturday support shows as 3 removed and 11 added words — 50% churn on a 28-word page. Text-only by design: formatting and image changes don't show, scanned pages without a text layer are flagged. Free, no uploads.

Files

Granularity
Open both PDFs to begin. Files never leave your browser.
Advertisement

What a Text Diff Catches — and What It Doesn't

ChangeShows in the diff?Notes
Changed words, numbers, datesYesHighlighted word-level, per page pair
Inserted or deleted sentencesYesAdded text on the right, removed on the left
Inserted or dropped whole pagesYesCounted in "pages only in one file"; later pairs shift
Formatting-only edits (font, color, spacing)NoText-based comparison; the words didn't change
Image or chart changesNoImages carry no text to diff
Scanned pages without a text layerFlaggedPage reports "no extractable text"; run OCR first

How the PDF Comparison Works

Lawyers redline, developers diff, and everyone else squints. This tool brings the diff to PDFs: it's the same word-level comparison our text Diff Checker runs, but fed by a PDF engine that walks page structure instead of a paste box.

The pipeline

Two files in → pdf.js extracts the text content of every page in each (that's the same text layer copy and search use) → pages pair up by number, page 1 against page 1 → jsdiff compares each pair word by word (or line by line, if you switch granularity) → the left pane renders the original with deletions struck out, the right pane the revision with insertions highlighted → the summary counts words removed, words added, and pages that exist in only one file. Nothing renders as images and nothing is uploaded; the whole pipeline is JavaScript in the page.

How to use it

A worked example

An old and a new service-terms page. The old text: "The quarterly service fee is $49.00 per month, billed on the first business day. Late payments accrue interest at 1.5% per month. Support is available Monday through Friday." The new text changes the fee to $59.00, the rate to 1.75%, and the support window to "Saturday, and phone hours start at 8 a.m."

The word diff finds exactly three removals — 49, 5, Friday — and four insertions covering the new fee digits (59), the rate digits (75), and the extended support sentence. Counted as words: 3 removed, 11 added, against 28 words on the original page — a 50% churn figure the summary reports directly. The untouched runs ("...per month, billed on the first business day...") stay plain, so the eye lands only on what changed. That's the whole job: two versions in, every number that moved, out.

Frequently Asked Questions

How can I compare two PDF files?

Load both files into a PDF diff tool. This one extracts each page's text with pdf.js, compares the pages pairwise word by word, and shows the two versions side by side with removed text struck out on the left and added text highlighted on the right, plus a count of changes per page. Everything runs in your browser, so the documents are never uploaded.

Will it catch formatting-only changes?

No — this is a text comparison. If version two changes a font, recolors a heading, swaps an image, or nudges a margin without touching the words, the diff shows nothing. That's the honest limit of text-based diffing; it's tuned for contracts, policies, statements, and documentation, where the words are what matter.

What happens with scanned PDFs?

A scan is a picture of text, and there's often nothing to extract — pages come back with no text layer and the tool says so per page. Run the scans through OCR first if you need to diff them; once a file carries extractable text, the comparison works normally.

How is this different from a text diff checker?

A text diff tool compares what you paste in; this one walks the PDF itself — page structure, page counts, and the text inside each page — so you see changes page by page and notice structural moves like inserted or dropped pages. If you already have the raw text out of both files, our Diff Checker is the lighter tool for the job.

Why do pages pair up by number?

Text-based page matching has no anchor beyond position: page 5 of the old file pairs with page 5 of the new one. When one version inserts a page early, later pairs shift and show as large delete-plus-add blocks — the summary's "pages only in one file" counters are the tell that a structural change happened near the top.

Does my file get uploaded anywhere?

No. Both files are parsed with pdf.js and compared with jsdiff inside the page; it works offline once loaded. Nothing is sent to a server and nothing is stored.

Advertisement