230

Do you know a good way to compare PDF files side-by-side and show the modifications between the two?

I'm looking for Windows software to accomplish this. It would be great if you can post both free and not-free products.

3

19 Answers 19

118

Try WinMerge with the xdocdiff plugin. Both are completely free. No strings attached.


A couple of the comments below suggest they don't see any difference. That means the plug-in isn't installed correctly. Here's how:

  1. Put the files where the xdocdiff plugin's readme file says to put them (there are two places; I won't list them here as filenames can change, etc. — read the readme)

  2. In WinMerge, go to Plugins > List and tick the "Enable Plugins" checkbox (this step is missing from the xdocdiff readme)

  3. In WinMerge, choose Plugins > Automatic Unpacking (this was disabled prior to step 2)

Then when comparing, you'll see what look like text files in the comparison windows.

8
  • Tried this but couldn't see any difference when not using the xdocdiff plugin. Is there an option to select in WinMerge's UI? Sep 18, 2012 at 9:53
  • 2
    What is the purpose of viewing the binary text in a PDF? I expected to see the visual differences as done by i-net PDFC.
    – JJD
    Jan 4, 2013 at 11:03
  • Was there any way to make this handle column breaks? Without it one change cascades into several.
    – Stuart
    Apr 29, 2013 at 23:48
  • 2
    Plugins > List and tick the "Enable Plugins" checkbox was what was missing for me!
    – Seph
    May 5, 2014 at 11:28
  • Many characters are missing from the text versions of the PDFs shown in the WinMerge diff windows
    – cja
    Jun 25, 2018 at 9:40
189
+50

On Linux and Windows you can use diffpdf (which differs from diff-pdf mentioned in this thread).

enter image description here

On Ubuntu install using:

sudo apt-get install diffpdf

See further this UbuntuGeek page on comparing pds textually or visually.

For Windows, this Diffpdf Windows version works really great. You can download from http://soft.rubypdf.com/software/diffpdf (scroll down to Win32 static version).

12
  • 14
    Proper name is DiffPDF (as seen in the screenshot) and it's based on Qt 4 and Poppler library, thus it is portable. See DiffPDF homepage: qtrac.eu/diffpdf.html. Information about Windows build is here: soft.rubypdf.com/software/diffpdf. And your installation instruction works on Debian too.
    – przemoc
    May 22, 2011 at 17:59
  • 4
    The DiffPDF home page now has links for Linux, Windows installer, and Mac DMG installs as well (qtrac.eu/diffpdf.html).
    – studgeek
    Oct 25, 2012 at 19:37
  • 11
    DiffPDF is the most advanced tool presented here, in my opinion. Not only does it offer a nice graphical comparison, but it tracks changes more cleverly than others, e.g. the xdocdiff for WinMerge. However, it has one serious problem: It limits the comparison to pages. That means, if you have some text on page 2 of document A, but this text moves to page 3 in document B, then the tool thinks its gone in A and added in B.
    – caw
    Mar 29, 2014 at 1:31
  • 8
    The older free versions can be found here Jun 4, 2014 at 12:29
  • 3
    I tried using this for a novel that I export to PDF. Unfortunately the tool lost track after around 10 pages and considered everything to be "different", even though large passages were exactly the same.
    – Eric J.
    Mar 2, 2016 at 19:50
50

I recently found this and I love it.

https://github.com/vslavik/diff-pdf

Cross platform, free, and works well.

Here is a screenshot of diff-pdf in action - note that the text is not different in the PDF, but only fonts (and correspondingly, layout settings):

diff-pdf.png

The call to obtain that image was:

diff-pdf --view testA.pdf testB.pdf

 

... where testA.pdf/testB.pdf are obtained by compiling this simple Latex file with pdflatex (accordingly for each pdf, see comment):

\documentclass[12pt]{article}


                        % without mathpazo: testA.pdf
\usepackage{mathpazo} % with mathpazo: testB.pdf
\usepackage{lipsum}


\title{A brand new test}
\author{Testulio}

\begin{document}

\maketitle

\lipsum[1-3]

\end{document}
4
  • 13
    Just one more note about diff-pdf: DiffPDF is great for quick visual side-by-side comparison of changed text, but it is practically impossible to debug stuff like, say, small changes in line spacing - diff-pdf on the other hand, basically puts the page contents from both compared files on the same page (but with different color) - so line spacing problems can be easily identified... Cheers!
    – sdaau
    Oct 6, 2011 at 10:20
  • This is great! Is there anyway to track progress on large files when outputting to a PDF file (not using the --view option)? The verbose option /v does not seem to do anything. Also when you run the command to generate a compare PDF it runs in a separate process so it does not pause the command prompt like normally happens when you execute something from the prompt.
    – LukeS
    Nov 28, 2016 at 19:10
  • This is the one I needed. I'm comparing PDF reports about numeric executions, so I'm looking for differences in one digit in a whole page. Problem is, I can not identify the cyan characters, but knowing where the difference is, is enough to find it in the original reports. May 4, 2017 at 9:44
  • 1
    Note that diff-pdf is great for comparing spatially-sensitive images like technical drawings. It highlights the changed pixels of blueprints or schematics or graphs that have identical scaling, such as revisions of the same design.
    – deasserted
    Oct 27, 2021 at 20:18
22

We also needed to compare PDFs at our company and were not satisfied with any of the solutions we found, so we made our own: i-net PDFC. It's not free, but we do offer a 30-day trial.

It's written in Java, so it's cross-platform.

screenshot

What makes it special is that it compares the content as opposed to only the text (or just converting the pdf to an image and comparing the image). It also has a nice visual comparison tool.

6
  • 1
    Nice bit of software. Sep 18, 2012 at 9:53
  • I couldn't get this to work. Loaded the two files and clicked on the compare button and nothing happens. Jun 10, 2016 at 17:57
  • 1
    Correctly handles cross page differences. Has an export/print functionality. Different comparison profiles (including custom). Mouse over gives you more details on what changed. Looks great. Drawbacks are the trial/cost and doesn't handle moves. Definitely superior to the tools higher voted IMO.
    – jgawrych
    Nov 21, 2017 at 20:19
  • @JonathanGawrych thanks for the kind words! What do you mean by "moves", exactly? Maybe we could add that functionality...
    – Epaga
    Dec 5, 2017 at 9:24
  • 2
    yowsers this is $200 a year software!
    – voxobscuro
    Sep 11, 2018 at 22:50
14

I wanted to do this (diff PDFs) recently with these requirements:

  • ignore whitespace, line breaks, page breaks, etc.
  • easily see when just a couple words that changed, not just entire lines/paragraphs.
  • color diff output

I installed pdftotext, wdiff, and colordiff, available in various package managers. (With macports: sudo port install poppler wdiff colordiff)

Then:

wdiff <(pdftotext old.pdf -) <(pdftotext new.pdf -) | colordiff

Now I can see which words, nicely colored, have changed.

More details: http://philfreo.com/blog/how-to-view-a-color-diff-of-text-from-two-pdfs/

Variation:

Using dwdiff can produce slightly better results.

I also wanted HTML output so this tiny script makes a basic web page with a bit of CSS.

bash pc-script.bash old.pdf new.pdf > q.htlm

Then open q.html with your web browser.

pc-script.bash file:

#!/bin/bash

OLD="$1"
NEW="$2"

cat <<EOF
<html><head><meta charset="UTF-8"/><title>Changes from $OLD to $NEW</title></head><style>
.plus  { color: green; background: #E7E7E7;                                }
.minus { color: red;   background: #D7D7D7; text-decoration: line-through; }
</style><body><h1>Changes from [ <span class="minus">$OLD</span> ] to [ <span class="plus">$NEW</span> ]</h1><pre>
EOF

dwdiff -i -A best -P      \
  --start-delete='<span class="minus">' --stop-delete='</span>' \
  --start-insert='<span class="plus" >' --stop-insert='</span>' \
  <( pdftotext -enc UTF-8 -layout "$OLD" - )   \
  <( pdftotext -enc UTF-8 -layout "$NEW" - )   \

cat <<EOF
</pre></body></html>
EOF

An example of output can be seen here

enter image description here

6
  • @philcolbourn Google+ is being shut down, maybe share the screenshot via imgur?
    – myrdd
    Mar 25, 2019 at 21:56
  • 1
    fwiw, I've stumbled upon this tiny repo: github.com/tpltnt/cli-diffpdf/blob/master/cli-diffpdf.sh
    – myrdd
    Mar 26, 2019 at 8:17
  • If you're using Windows, Mac, Fedora, openSUSE or you're capable of compiling the binaries from source for your system, diff-pdf is a better solution that accomplishes this without needing to install three different dependencies. Not to be confused with diffpdf mentioned in another answer, which functions via GUI only. Jun 20, 2019 at 21:58
  • Note that the pc-script.bash script does not escape characters for HTML.
    – Federico
    Aug 14, 2019 at 15:18
  • It would be great if the script could strip the html of what is not text. In my case I get a lot of random circles where there are figures.
    – Manfredo
    Jun 8, 2020 at 17:40
12

You can also use Adobe Acrobat X. Its has built in PDF comparison functionality under "View -> Compare Documents.

5
  • 1
    Acrobat or Acrobat Reader? the Reader software doesn't have this
    – Jason S
    Nov 28, 2012 at 17:06
  • 7
    AcrobatX Pro is the only version which has this feature. The "just plain AcrobatX" does not. Feb 20, 2013 at 21:16
  • 2
    In Acrobat 9 Pro it's under the Document menu.
    – svinto
    Jun 28, 2013 at 13:15
  • 2
  • I tried Adobe Acrobat DC (not free) and it did a better job comparing a 50-page document of the rules of my son's daycare (the diffs were not not perfect, but it's a hard) than Winmerge (which got really confused by new footers) or diffpdf (which seems to do it page-by-page and that's a pretty big disadvantage). I dislike Adobe for lots of reasons, but in this case it was the best. Aug 17, 2020 at 17:12
8

If you are comparing text inside a pdf, then Beyond Compare does this.

Not free, but there is a thirty day trial.

1
  • Yep, New > Text Compare helped me see basic differences in the text between 2 PDF files.
    – Ryan
    May 22, 2018 at 17:23
6

Great tool and easy to use : Compare-It v4 (from http://www.grigsoft.com/)

Compares many different kind of files. It has some built-in converters, including one for PDF files.

I've used it quite a few times with satisfying results.

Really should try this. Trial version allows comparison for unlimited time.

3
  • 1
    This was the best and easiest of all for me. Thanks!
    – Ankur Jain
    Apr 18, 2012 at 7:41
  • Easiest and most simple tool I found to use. I wish I could upvote this more than once!
    – Chad
    Jul 13, 2015 at 2:48
  • For PDF the comparison seem to be textual. Last release in 2010. You can pay for it but sure what difference is - I did't see any limitations ?
    – Zitrax
    Nov 20, 2015 at 13:47
2

Don't know it, but there is also comparePDF (not free, but a 30 day trial possible): http://www.compare-pdf.com/download.htm

2

My proposal for best tool to compare PDFs is Kiwi PDF Comparer.

Unlike most, you can compare both text and images in the document and you also have another option to compare pages pixel-to-pixel. When comparing text it has more resolution tan everyone else because it highlights changed characters and not whole words.

It must also be the only software to do a PDF diff in which you do not have to go looking for the marked differences because you can go from one difference to another just one click.

There is a free version that works very well, but the paid version is also the cheapest one with a difference between professional applications. Being written in Java can be run on Windows, Linux and Mac OS.

Comparing documents with Kiwi

1

Free, Not the best but...

I open both documents up and have them split screen against each other.

Not the most practical solution, but it works!

I have not seen a good DIFF package for PDF files and whilst manual and annoying, my way works!

4
  • Hum... not quite what I was looking for, but thanks. Sep 24, 2009 at 9:50
  • Sorry, I know not a good answer but just saying that I have never found a good tool for PDF files. Sep 24, 2009 at 9:55
  • 5
    cross your eyes so that the two copies overlap, and any differences will appear to flicker. :D
    – endolith
    Mar 4, 2014 at 16:12
  • 2
    Optimized version of this method: open both PDF files in acrobat reader full screen via CTRL+L, then use CTRL+F6 to switch between the PDF files, anything that moves is different... Jun 18, 2014 at 13:12
1

For a very primitive form of synchronized scrolling between two pdf files, you can use the following autohotkey script I wrote. It assumes you have two SumatraPDF windows open. Press right to go to the next page in both windows, press left for the previous page.

#IfWinActive ,SumatraPDF
Right::
orig := WinExist("A")
WinGet, outvar, List, SumatraPDF
win1 := outvar1
win2 := outvar2
WinActivate, ahk_id %win1%
sendinput {Right}
WinActivate, ahk_id %win2%
sendinput {Right}
WinActivate, ahk_id %orig%
return

Left::
orig := WinExist("A")
WinGet, outvar, List, SumatraPDF
win1 := outvar1
win2 := outvar2
WinActivate, ahk_id %win1%
sendinput {Left}
WinActivate, ahk_id %win2%
sendinput {Left}
WinActivate, ahk_id %orig%
return
1

Here you can upload two pdf's and get back the third one which will display to you the difference between the two.

Works on all platforms, theres nothing learn or install and its free.

https://synodins.com/apps/pdf_difference/intro.html

0

Another less than ideal solution:

  1. Convert both PDFs to Microsoft Word documents using one of the websites that do this for free.
  2. Use the document comparison functionality in Word.

Depending on how complex the formatting in the PDFs is and the kind of changes you're looking for, this might be OK.

2
  • In this case it would be hard, since there are lots of PDF documents and the modifications happen very frequently. But thanks for the suggestion. Sep 24, 2009 at 10:20
  • Also not great for LaTeX output - I haven't found one of these converters that handles ligatures etc properly.
    – Chris H
    Sep 3, 2013 at 10:19
0

Commercial: You can use the original Adobe Acrobat Professional, for a whopping $449 :
Compare a revised PDF to an earlier version.

If you decide on Acrobat, the comments on this page are pertinent to its use.

4
0

Diff Doc - not free.

0

I used this (non ideal, but for me sufficient) solution:

  • Convert PDF to plain text (in my case with Adobe Reader, free app)
  • Use opendiff (included with XCode, free) and see changes
0

pdf-diff is a Python package for this purpose.

1
  • Is this text-only or graphical?
    – endolith
    Oct 22, 2018 at 16:45
0

There is also free online https://www.diffchecker.com/diff.

But it highlights only text differences without images and formatting. And it's too weak in matching unchanged fragments in large files.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .