Skip to main content
Support

Browse by category

All categories
← All posts
Field testNov 7, 2026 · 8 min read

Three PDF compare engines on the same 625 pairs

We ran Loft Compare PDF, DiffPDF and Diffchecker on the same 532 public PDF pairs and 93 one-change test files. What each engine reads, what each found, where each is faster, and how to check every number yourself.

By Khine1,549 words→ Compare PDF
Share of known changes found on 532 public PDF pairs. Documents: Loft Compare PDF 100%, Diffchecker rich text 99%, DiffPDF Words 97%, DiffPDF Appearance 93%. Drawings: Loft Compare PDF 100%, Diffchecker 76%, DiffPDF Words 72%, DiffPDF Appearance 82%.

A PDF compare engine reads two versions of a file and lists what changed. Engines differ most in what they read: the words, the rendered pixels, or the objects on the page. We ran three engines on the same 532 public PDF pairs and 93 one-change test files. On documents they come close. On drawings they do not.

We build one of the three, Loft Compare PDF. Read this as our test; its limits are stated at the end. The test files and the per-pair results are free to download, so you can check any number here. The last sections say how to test each engine yourself.

Loft Compare PDF Diffchecker DiffPDF
What it reads Text, drawn pieces and pictures as objects Text (rich text view); pixels per page (image view) Text (Words mode); pixels (Appearance mode)
Documents: known changes found 100% 99% 97% (Words)
Drawings: known changes found 100% 76% 72% (Words), 82% (Appearance)
Pages paired by content Yes, drawing sheets too By text No, page 1 with page 1
Typical time per pair in this test 4 s 1.3 s 0.13 s
Where it runs In the browser Browser or desktop app Desktop (Linux build tested)

What did we test?

  • 93 probes. Each is a pair of small PDFs with one known change, built to test one ability: a value edited, a line made heavier, a picture recoloured, a page inserted, white text added, a drawing scaled. A few probes change the file and nothing a reader sees, to check that an engine stays quiet.
  • 532 public pairs. Real revisions of research papers, contracts, government and medical documents, schematics, circuit-board sets, flex-circuit drawings and architectural sheets: 225 document pairs with 4,147 known changes, and 307 drawing pairs with 3,257.

Each known change was marked in our own review sessions, against the rendered pages. A change counts as found when one of the engine’s rows covers it on the page.

The engines, run from 5 to 7 November 2026, all at their default settings:

  • Loft Compare PDF, the engine the browser app runs, on the same computer.
  • Diffchecker Desktop 7.3.4 for Linux, on a Pro account, in its rich text view (the default) and its image view.
  • DiffPDF 2.1.3, the free Linux build, in its Words and Appearance modes. The paid Windows edition is no longer sold, so we could not test it.

Three ways to compare two PDFs: a text differ reads the words in order, a pixel differ compares rendered pages, an object differ reads text, drawn pieces and pictures

What did each engine find?

On documents the three engines are close: 4,146 of 4,147 known changes for Loft, 4,102 for Diffchecker and 4,014 for DiffPDF Words. In this test, a text differ did well when the change was in the words.

On drawings the gap opens: 3,255 of 3,257 for Loft, 2,478 for Diffchecker, 2,336 for DiffPDF Words and 2,666 for DiffPDF Appearance. Most changes on these drawings are lines, outlines, symbols and pictures, which the text views here did not read.

The probes show why, one ability at a time:

Ability (probes) Loft Diffchecker rich text Diffchecker image DiffPDF Words DiffPDF Appearance
Text edits, old and new value (10 changes) 10 10, shows the changed characters page flagged on 4 of 5 pairs 10 9 places marked
Line weight, dashes, colours, a moved vertex (9) 9 0 page flagged on 9 0 9 places marked
Pictures replaced, recoloured or masked (5) 5 0 page flagged on 5 0 5 places marked
Text colour and grey text (4) 4 0 by default, 4 with formatting on page flagged on 4 0 4 places marked
Same drawing scaled, rotated or mirrored (4) 4 0 page flagged on 4 0 4 places marked
Page inserted in a document (1) found, 2 rows, later pages paired 1 row, later pages paired pages 3 to 5 flagged found, 2 extra rows found, 46 squares
Hidden text: white, invisible, covered (7 pairs) listed and marked hidden listed as ordinary edits 0% changed listed as ordinary edits nothing to see
Page rotated, nothing else changed 1 row quiet 35% of the page changed quiet 146 squares

Here the pixel views saw every visible change but did not say what changed. The image view reports a changed percentage per page, and DiffPDF Appearance marks squares; either way you open the page and look. A text view states the change but only when it is in the words.

Who lists the fewest rows?

Finding a change is half the job; the other half is how many rows a reviewer reads to find it. On the 532 public pairs, Loft listed 42,661 rows, Diffchecker 148,686, DiffPDF Words 39,673, and DiffPDF Appearance marked 621,141 squares.

Not every row lands on a marked change. Some rows are true but minor, like a label nudged a little; some are noise. For Loft, 37% of rows sat on no marked change, against 52% for Diffchecker and 56% for DiffPDF Words. On drawings, Loft listed 23,836 rows, DiffPDF Words 19,528 and Diffchecker 116,196. Loft’s rows there include changes to the drawn lines and pictures, which the two text views do not list.

Which engine is fastest?

DiffPDF compares a pair in about a tenth of a second (median 0.13 s in Words mode, 0.24 s in Appearance). Diffchecker took a median of 1.3 s per pair, opening included. Loft took a median of 4 s, and up to 36 s on large drawing sets. It reads every page as objects, then checks the rendered pixels for anything left over. For one contract that is a pause; for a 40-sheet drawing set, it is time spent so that a moved sheet, a changed line or a hidden note is not missed.

How to test each engine yourself

Start with the probe files (2 MB). Each folder holds a.pdf and b.pdf, and the README says what changed. Open each pair in each engine and compare its answer with the README. The per-pair results list every public pair with its known changes, what each engine found and how many rows it listed.

Loft Compare PDF. Open Compare PDF and drop both files. The list gives one row per change with its old and new text; numbers are also gathered in the Values list. For a drawing set, check the pairing view: it shows which sheet was compared with which, and you can pair them yourself. Hidden content (white text, covered text, a layer turned off) is listed with the changes and marked hidden.

Diffchecker. Open its PDF compare on the web or in the desktop app, and add both files.

  • Rich text is the default view. A change card shows only the characters that changed: a value edited from 0.172 to 0.173 reads “2 → 3”. Open the page view to read the whole value.
  • Formatting changes such as text colour are off by default. Turn them on in its settings before you test them.
  • The image view gives a changed percentage per page. In our test it matched pages by number: with a page inserted, every later page read as changed.

DiffPDF. Install it from your Linux distribution’s packages, open both files and press Compare. Words mode is the default; switch to Appearance for drawings. It compares page 1 with page 1, so when a page was inserted, type page ranges in both boxes so the right pages face each other. Appearance marks squares where the pixels differ; zoom in to see what they hold.

The limits of this test

  • We built Loft and the test. We marked the known changes in our own review sessions, and we tuned Loft on many of these files. Read Loft’s numbers as its best case. A set of fresh drawing pairs is kept back to measure it without that advantage.
  • Default settings. Each engine might do better with its options set for the job, such as Diffchecker’s formatting changes or DiffPDF’s page ranges. We note where an option matters.
  • Diffchecker’s OCR view was not run, so its result on scanned pages comes from its rich text view only.
  • Timing ran on one computer. Loft ran eight pairs at once in Node. Diffchecker ran one pair at a time in its desktop app. DiffPDF was timed on its compare step only.

If you want to see what Compare PDF shows for your own pair of files, try Compare PDF, or browse more PDF tools at Loft Tools.

References

  1. diffpdf(1) manual page — Arch Linux (accessed 2026-11-05)
  2. Compare PDF and Word documents — Diffchecker (accessed 2026-11-05)
  3. Diffchecker Desktop — Diffchecker (accessed 2026-11-05)