Instant PDF File Diff Checker

Upload two PDFs to extract and compare their text content line by line

Original PDF

Drop PDF here or click to upload
.pdf files only

Changed PDF

Drop PDF here or click to upload
.pdf files only
+0 added −0 removed 0 unchanged
Quick answer

Upload your original PDF on the left and the updated PDF on the right, then click Find Differences. The tool extracts the text layer from both files using PDF.js and shows every changed line in color-coded diff output. Works only on text-based PDFs - not scanned images.

Key takeaways
  • Text-based PDFs only - scanned PDFs contain images of text, not a text layer, so they produce empty output. Use the Image to Text (OCR) tool first to extract text from scans.
  • 100% private - uses PDF.js (Mozilla's open-source renderer) running entirely in your browser. Your files are never uploaded to any server.
  • Formatting is not compared - bold, italic, font size, and color are invisible to this tool. Only the character content is diffed.
  • Multi-column layouts may extract out of order - PDF stores text in internal order, not always visual reading order. Two-column documents and complex tables may produce confusing results.
  • For Word documents (.docx), use the Compare Documents tool - it handles .docx natively without needing a PDF export step.

How to use our PDF diff checker tool

Drop each PDF file into its panel, or click to browse. Then click "Find Differences." The tool loads PDF.js on demand (no page-weight cost unless you use the tool), extracts the text layer from both files, and runs a line-by-line diff. Additions appear in green, removals in red.

For large PDFs the extraction step may take a few seconds. The button shows "Extracting text…" while processing. Everything runs in your browser - no files are uploaded to any server.

Explained to a beginner

A PDF is not like a Word document. Most PDFs store their content in two separate layers: a visual layer (what you see on screen) and a hidden text layer underneath it. The text layer is what search tools use when you press Ctrl+F inside a PDF reader - it's the actual characters, not the picture of them. This tool pulls that hidden text layer out of both PDFs and compares the two strings of text line by line.

The catch: if your PDF was created by scanning a physical document - a sheet of paper run through a printer/scanner - there is no text layer. The file is just a photograph of the page. PDF.js cannot extract text from a photograph, so it returns nothing useful.

If you're not sure whether your PDF has a text layer, try pressing Ctrl+F in your PDF reader and searching for a word you can see. If the search highlights the word, the text layer exists. If it doesn't find anything, the PDF is a scan.

Concrete example: a 15-page service agreement sent back by a vendor with revisions. Rather than reading all 15 pages twice, upload both PDFs here. In a few seconds you see that one sentence in clause 4.2 was modified, a new sub-clause was inserted at 7.1(c), and the payment terms in section 9 changed from "30 days" to "45 days." The whole check takes under a minute instead of 30 minutes of careful reading.

How PDF text extraction works

PDFs store content in one of two ways: as an embedded text layer (text-based PDFs) or as rasterized images of text (scanned PDFs). This tool uses PDF.js - Mozilla's open-source PDF renderer - to extract the text layer. The extracted text from each page is concatenated and then compared line by line using an LCS (Longest Common Subsequence) diff algorithm, the same algorithm used by Git.

Limitations of PDF comparisons

PDF text comparison has inherent limitations you should understand:

  • Scanned PDFs produce no text. If your PDF is a scan (an image of a printed page), PDF.js cannot extract text from it. You will get empty or minimal output. Use the Image to Text (OCR) tool to extract text from the scan first.
  • Text order may differ from visual layout. PDF.js extracts text in the internal order it is stored, which sometimes differs from left-to-right, top-to-bottom reading order - especially in multi-column layouts, tables, or footnotes.
  • Formatting is not compared. Bold, italic, font size, and color are not part of the text extraction. Only the character content is compared.

For comparing formatted Word documents, the Compare Documents tool supports .docx files directly.

The multi-column extraction issue trips people up more than any other limitation. I've seen it produce confusing diffs on academic papers - a two-column journal article extracts left-column text from page 1, then right-column text from page 1, then switches to page 2. The diff appears to show half the document moved around when really it's just a reading-order artifact.

If your document is multi-column and the diff looks chaotic, copy-paste the text manually from each PDF into the text diff checker after reorganizing the column order - that gives you a clean comparison of the content itself.

Does your PDF have a text layer?

Before uploading, it's worth confirming your PDFs contain actual text - otherwise the comparison will return empty output and it won't be clear why. There are two quick ways to check:

MethodHow to do itWhat it means
Ctrl+F searchOpen the PDF in your browser or reader, press Ctrl+F (or Cmd+F on Mac), and search for a word you can see on screenIf the word highlights, there is a text layer. If nothing is found, the PDF is a scan.
Select and copyTry to click and drag to select a block of text, then copy itIf you can paste readable text into a text editor, the PDF has a text layer. If you paste nothing, or a string of symbols, it's a scan or has a corrupted text layer.
File size checkCompare file size: a scanned PDF is usually 1-5 MB per page; a native text PDF is typically under 500 KB totalA rough indicator only - a text PDF with embedded images can also be large.

If your PDF is a scan and you need to compare it, use the Image to Text (OCR) tool first to extract the text, then paste both extracted texts into the text diff checker.

Common use cases for comparing PDF files

Contract and legal document redlines

When a contract is revised and sent back as a new PDF, upload both versions here to see every changed sentence, clause, or paragraph - without reading both documents in full. Even a single changed word will appear in the diff.

The pattern I find this most valuable for is a contract returned with "tracked changes accepted" - the vendor or counterparty sends back a clean PDF with no visible redlines, which makes it easy to assume nothing changed. Running the diff takes 30 seconds and immediately reveals whether that's true.

I've caught meaningful changes this way - a liability cap quietly increased from $60,000 to $100,000, an auto-renewal clause added, an indemnification paragraph reworded to shift responsibility. None of it was visible without a direct comparison.

Report and white paper versioning

Compare two versions of a report to verify which sections changed between drafts, which figures were updated, and whether any text was accidentally removed during editing.

Regulatory and compliance submissions

Many regulatory filings, technical standards, and compliance documents are distributed as PDFs. Comparing the current version against the previous one produces a clear audit trail of what changed.

Academic paper revision review

When submitting a revised manuscript to a journal, compare the original submission against the revised version to verify that every change requested by reviewers was actually made - and that no unintended text was altered or removed in the process. This is also useful when comparing two versions of a research paper downloaded from preprint servers like arXiv, where updated versions are uploaded over time.

Insurance policy annual review

Insurance policies are renewed annually as PDFs, and insurers routinely update coverage terms, exclusion lists, or deductible thresholds between renewal years. The changes are rarely highlighted. Upload last year's policy on the left and this year's on the right to see exactly which clauses were reworded, which exclusions were added, and whether any coverage was quietly reduced.

Common mistakes when comparing PDFs

Uploading a password-protected PDF

PDF.js cannot extract text from an encrypted or password-protected PDF. It will either fail silently and return empty output, or produce an error. If your PDF requires a password to open, you need to unlock it first.

In Adobe Acrobat Reader (or the full Acrobat), go to File → Properties → Security, remove the password protection, and re-save the file before uploading.

In a pinch, opening the file in Chrome (which prompts for the password), then printing it to PDF using Chrome's built-in printer, produces an unlocked copy - though this sometimes degrades the text layer quality.

Comparing a "print to PDF" file against a native PDF

When a Word document is printed to PDF via the browser's built-in PDF printer (rather than saved as PDF directly from Word), the browser serializes text in visual paint order - not reading order. The resulting PDF may have a scrambled text layer where words appear in a different sequence than they read on screen.

If one of your files was created this way and the other was a native PDF export, the diff may look chaotic even for documents with identical content.

The fix: re-export both files using the same method - ideally File → Save As → PDF from Word, or File → Download → PDF from Google Docs.

Expecting formatting differences to appear

This tool compares extracted text only. If one PDF has a heading in bold red 18pt and the other has the same heading in plain black 12pt, the diff will show those lines as unchanged because the characters are identical. Formatting changes - font, color, size, spacing, layout - are invisible to text extraction.

If you need to verify formatting changes, use a dedicated PDF comparison application that renders both documents visually.

Footnotes and endnotes appearing mid-paragraph

PDF.js extracts footnotes in the position they are stored internally, which is often mid-page rather than at the end. A footnote marker like "¹ See Section 4" may appear in the middle of the paragraph that references it, not at the bottom of the page.

If your diff shows text appearing in strange positions within paragraphs, check whether those lines are footnotes or endnotes from the source document.

FAQs about comparing PDF files online

What does PDF stand for?

PDF stands for Portable Document Format. It was developed by Adobe in the early 1990s to create a file format that looks identical on any device or operating system, regardless of the software used to create it. The "portable" part refers to this layout consistency - a PDF printed in Tokyo looks exactly the same as one opened in London.

Can this compare scanned PDFs?

No. Scanned PDFs contain images of text, not actual text. PDF.js can only extract an embedded text layer. Use the Image to Text (OCR) tool to extract text from the scanned PDF first, then paste the result here to compare.

Is my PDF private?

Yes. All processing runs in your browser using PDF.js. Nothing is uploaded to any server at any point. In other words, you have full privacy when uploading your PDF files.

What happens with multi-page PDFs?

The tool extracts text from all pages and concatenates them before running the diff. Text from page 1 is compared to text from page 1 of the other document, then page 2, and so on, as a continuous text stream.