Comment comparer les différences entre deux fichiers PDF sous Windows?


205

Connaissez-vous un bon moyen de comparer des fichiers PDF côte à côte et d'afficher les modifications entre les deux?

Je cherche un logiciel Windows pour y parvenir. Ce serait formidable si vous pouvez publier des produits gratuits et non gratuits.



1
Il existe une bibliothèque GRATUITE pour comparer les pdf en pixels. Consultez ce blog: testautomationguru.com/…
Vinoth S

Réponses:


109

Essayez WinMerge avec le plugin xdocdiff . Les deux sont totalement gratuits. Sans attaches.


Quelques commentaires ci-dessous suggèrent qu’ils ne voient aucune différence. Cela signifie que le plug-in n'est pas installé correctement. Voici comment:

  1. Mettez les fichiers où se trouve le xdocdifffichier readme du plugin (il y a deux endroits; je ne les énumérerai pas ici car les noms de fichiers peuvent changer, etc. - lisez le readme)

  2. Dans WinMerge, accédez à Plugins> Liste et cochez la case "Activer les plugins" (cette étape manque dans le xdocdifffichier Lisez - moi).

  3. Dans WinMerge, choisissez Plugins> Unpacking automatique (cette option était désactivée avant l'étape 2).

Ensuite, lors de la comparaison, vous verrez à quoi ressemblent des fichiers texte dans les fenêtres de comparaison.


J'ai essayé cela, mais je ne pouvais voir aucune différence lorsque je n'utilisais pas le plugin xdocdiff. Existe-t-il une option à sélectionner dans l'interface utilisateur de WinMerge?
Umber Ferrule

1
Quel est le but de l'affichage du texte binaire dans un PDF? Je m'attendais à voir les différences visuelles comme le fait i-net PDFC .
JJD

Existait-il un moyen de faire casser cette colonne? Sans cela, un changement se répercute en plusieurs.
Stuart

1
Plugins > List and tick the "Enable Plugins" checkboxC'était ce qui me manquait!
Seph

De nombreux caractères sont absents des versions texte des PDF affichés dans les fenêtres WinMerge diff
cja

168

Sous Linux et Windows, vous pouvez utiliser diffpdf(ce qui diffère de celui diff-pdfmentionné dans ce fil).

entrez la description de l'image ici

Sur Ubuntu, installez en utilisant:

sudo apt-get install diffpdf

Voir plus loin cette page UbuntuGeek pour comparer les pds textuellement ou visuellement .

Pour Windows , cette version Windows Diffpdf fonctionne vraiment bien. Vous pouvez télécharger depuis http://soft.rubypdf.com/software/diffpdf (faites défiler jusqu'à la version statique Win32 ).


12
Le nom propre est DiffPDF (comme on peut le voir sur la capture d'écran) et il est basé sur la bibliothèque Qt 4 et Poppler. Il est donc portable. Voir la page d'accueil DiffPDF : qtrac.eu/diffpdf.html . Vous trouverez des informations sur la construction de Windows à l' adresse suivante : soft.rubypdf.com/software/diffpdf . Et votre instruction d’installation fonctionne également sur Debian.
Przemoc

3
La page d'accueil DiffPDF contient désormais des liens pour Linux, les programmes d'installation Windows et Mac DMG également ( qtrac.eu/diffpdf.html ).
studgeek

6
DiffPDF est à mon avis l'outil le plus avancé présenté ici. Non seulement il offre une belle comparaison graphique, mais il suit les changements plus intelligemment que d’autres, par exemple le xdocdiff pour WinMerge. Cependant, il a un problème sérieux: il limite la comparaison aux pages. Cela signifie que si vous avez du texte à la page 2 du document A, mais que ce texte passe à la page 3 du document B, l'outil pense qu'il est parti en A et ajouté en B.
caw

7
Les anciennes versions gratuites sont disponibles ici
Shafik Yaghmour

3
J'ai essayé d'utiliser cela pour un roman que j'exporte au format PDF. Malheureusement, l'outil a perdu la trace après environ 10 pages et a considéré que tout était "différent", même si les passages importants étaient exactement les mêmes.
Eric J.

42

J'ai récemment découvert cela et je l'aime.

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

Cross plate-forme, gratuit et fonctionne bien.

Voici une capture d'écran de diff-pdfin action - notez que le texte n'est pas différent dans le PDF, mais uniquement dans les polices (et donc dans les paramètres de mise en page):

diff-pdf.png

L'appel pour obtenir cette image était:

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

 

... où testA.pdf / testB.pdf sont obtenus en compilant ce simple fichier Latex avec pdflatex(en conséquence pour chaque pdf, voir commentaire):

\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}

10
Une autre remarque à propos de diff-pdf: DiffPDF est idéal pour une comparaison visuelle côte à côte du texte modifié, mais il est pratiquement impossible de déboguer des éléments tels que, par exemple, de petits changements d’espacement des lignes - diff-pdfpar contre, met essentiellement le contenu de la page à partir des deux fichiers comparés sur la même page (mais avec une couleur différente) - ainsi les problèmes d'espacement de ligne peuvent être facilement identifiés ... À la vôtre!
Sdaau

C'est bien! Est-il possible de suivre la progression sur des fichiers volumineux lors de la sortie dans un fichier PDF (sans utiliser l'option --view)? L'option verbose / v ne semble rien faire. De même, lorsque vous exécutez la commande pour générer un fichier PDF de comparaison, elle est exécutée dans un processus séparé afin de ne pas suspendre l'invite de commande, comme cela se produit normalement lorsque vous exécutez quelque chose à partir de l'invite.
LukeS

C'est celui dont j'avais besoin. Je compare les rapports PDF sur les exécutions numériques. Je recherche donc les différences d'un chiffre sur une page entière. Le problème, c’est que je ne peux pas identifier les caractères cyan, mais savoir où se trouve la différence suffit à le trouver dans les rapports originaux.
manuelvigarcia

22

Nous avions également besoin de comparer les fichiers PDF de notre entreprise et n'étant satisfaits d'aucune des solutions trouvées, nous avons donc créé le notre: i-net PDFC . Ce n'est pas gratuit, mais nous proposons un essai de 30 jours.

C'est écrit en Java, donc c'est multi-plateforme.

capture d'écran

Ce qui le rend spécial, c'est qu'il compare le contenu plutôt que seulement le texte (ou simplement la conversion du pdf en image et la comparaison de l'image). Il a également un bel outil de comparaison visuelle.


1
Beau morceau de logiciel.
Umber Ferrule

Je ne pouvais pas faire fonctionner ça. Chargé les deux fichiers et cliqué sur le bouton de comparaison et rien ne se passe.
Craig Fisher

1
Traite correctement les différences entre les pages. Possède une fonctionnalité d'exportation / d'impression. Différents profils de comparaison (y compris personnalisés). Passez la souris sur vous donne plus de détails sur ce qui a changé. C'est génial. Les inconvénients sont l’essai / le coût et ne gèrent pas les déménagements. Définitivement supérieure aux outils les plus votés de l’OMI.
Jonathan Gawrych

@ JonathanGawrych merci pour les mots gentils! Qu'entendez-vous par "mouvements", exactement? Peut-être pourrions-nous ajouter cette fonctionnalité ...
Epaga

@Epaga Si une section de texte est déplacée d'une page à une autre, elle est affichée sous forme de suppression et d'ajout. Par exemple, comparez les propositions c ++ N4663 et N4680 . Voir autour de la page 19, un exemple est déplacé du paragraphe 11 au paragraphe 8, mais il est traité comme une addition / suppression. Pour voir les différences réelles, il faut détecter manuellement quelque chose qui a été déplacé, puis copier l'exemple dans un autre outil de différenciation pour voir que des choses ont été ajoutées à l'exemple (unhandled_exception, return_void, etc.)
Jonathan Gawrych

12

Vous pouvez également utiliser Adobe Acrobat X. Sa fonctionnalité de comparaison PDF intégrée est intégrée dans "Affichage -> Comparer des documents.


1
Acrobat ou Acrobat Reader? le logiciel Reader n'a pas cela
Jason S

4
AcrobatX Pro est la seule version dotée de cette fonctionnalité. Le "tout simplement AcrobatX" ne le fait pas.
Carl Witthoft

2
Dans Acrobat 9 Pro, il se trouve dans le menu Document.
svinto


10

Je voulais faire cela (PDF diff) récemment avec ces exigences:

  • ignorer les espaces, les sauts de ligne, les sauts de page, etc.
  • voir facilement quand seulement quelques mots ont changé, pas seulement des lignes / paragraphes entiers.
  • sortie couleur diff

J'ai installé pdftotext, wdiff et colordiff, disponibles dans divers gestionnaires de paquets. (Avec macports: sudo port install poppler wdiff colordiff)

Ensuite:

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

Maintenant, je peux voir quels mots, joliment colorés, ont changé.

Plus de détails: http://philfreo.com/blog/how-to-view-a-color-diff-of-text-from-two-pdfs/

Variation:

L'utilisation dwdiffpeut produire des résultats légèrement meilleurs.

Je voulais aussi une sortie HTML afin que ce petit script crée une page Web de base avec un peu de CSS.

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

Ouvrez ensuite q.htmlavec votre navigateur Web.

pc-script.bash fichier:

#!/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

Un exemple de sortie peut être vu ici

entrez la description de l'image ici


@philcolbourn Google+ est en train de fermer, partagez peut-être la capture d'écran via imgur?
Myrdd

fwiw, j’ai trébuché sur ce minuscule repo: github.com/tpltnt/cli-diffpdf/blob/master/cli-diffpdf.sh
mardi

Si vous utilisez Windows, Mac, Fedora, openSUSE ou si vous êtes capable de compiler les fichiers binaires à partir des sources de votre système, diff-pdf est une meilleure solution pour cela sans qu'il soit nécessaire d'installer trois dépendances différentes. Ne pas confondre avec diffpdf mentionné dans une autre réponse, qui fonctionne uniquement via l'interface graphique.
Hashim

Notez que le pc-script.bashscript n'échappe pas aux caractères HTML.
Federico

7

Si vous comparez du texte dans un pdf, alors Beyond Compare le fait.

Pas gratuit, mais il y a un essai de trente jours.


Oui, New > Text Comparem'a aidé à voir les différences fondamentales dans le texte entre 2 fichiers PDF.
Ryan

6

Excellent outil et facile à utiliser: Compare-It v4 (de http://www.grigsoft.com/ )

Compare de nombreux types de fichiers. Il possède des convertisseurs intégrés, dont un pour les fichiers PDF.

Je l'ai utilisé plusieurs fois avec des résultats satisfaisants.

Vraiment devrait essayer cela. La version d'évaluation permet la comparaison pour une durée illimitée.


1
C'était le meilleur et le plus facile de tous pour moi. Merci!
Ankur Jain

Outil le plus simple et le plus simple que j'ai trouvé à utiliser. Je souhaite que je pourrais upvoter plus d'une fois!
Chad

Pour PDF, la comparaison semble être textuelle. La dernière version date de 2010. Vous pouvez payer pour cela, mais la différence est réelle. Je n'ai pas vu de limite.
Zitrax


1

Gratuit, pas le meilleur mais ...

J'ouvre les deux documents et les divise en écrans l'un contre l'autre.

Pas la solution la plus pratique, mais ça marche!

Je n'ai pas vu un bon package DIFF pour les fichiers PDF et bien que manuel et ennuyeux, mon chemin fonctionne!


Hum ... pas tout à fait ce que je cherchais, mais merci.
Nelson Reis

Désolé, je ne connais pas une bonne réponse, mais je dis simplement que je n'ai jamais trouvé un bon outil pour les fichiers PDF.
William Hilsum

3
croisez les yeux de façon à ce que les deux copies se chevauchent, et toute différence semblera scintiller. : D
endolithe

Version optimisée de cette méthode: ouvrez les deux fichiers PDF dans Acrobat Reader en mode plein écran via CTRL + L, puis utilisez CTRL + F6 pour basculer entre les fichiers PDF, tout ce qui bouge est différent ...
Bernard Vander Beken


0

Une autre solution moins qu'idéale:

  1. Convertissez les deux PDF en documents Microsoft Word en utilisant l'un des sites Web qui le font gratuitement .
  2. Utilisez la fonctionnalité de comparaison de documents dans Word.

Selon la complexité de la mise en forme dans les fichiers PDF et le type de modifications que vous souhaitez, cela peut être correct.


Dans ce cas, ce serait difficile, car il existe de nombreux documents PDF et les modifications sont très fréquentes. Mais merci pour la suggestion.
Nelson Reis

Ce n’est pas non plus excellent pour les sorties LaTeX - je n’ai pas trouvé l’un de ces convertisseurs qui gère correctement les ligatures, etc.
Chris H

0

Commercial: vous pouvez utiliser le logiciel Adobe Acrobat Professional d’origine pour 449 USD:
comparez un PDF révisé à une version antérieure .

Si vous choisissez Acrobat, les commentaires sur cette page sont pertinents à son utilisation.


"pour 449 $" ... et combien de Mo d'espace disque?
Hugh Allen

3
@ Allen Allen: Beaucoup d'espace disque et quelques dizaines de milliers d'entrées dans le registre. Un vrai bloatware.
harrymc

Article d'aide mis à jour pour Adobe Acrobat XI: adobe.com/uk/products/acrobat/file-compare-two-pdf-files.html
Squig

Et c'est quand même un peu buggué
Michal Sokolowski


0

Pour une forme très primitive de défilement synchronisé entre deux fichiers pdf, vous pouvez utiliser le script autohotkey suivant que j'ai écrit. Cela suppose que deux fenêtres SumatraPDF soient ouvertes. Appuyez à droite pour aller à la page suivante dans les deux fenêtres, appuyez à gauche pour la page précédente.

#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

0

J'ai utilisé cette solution (non idéale, mais suffisante pour moi):

  • Convertir un fichier PDF en texte brut (dans mon cas, avec Adobe Reader, application gratuite)
  • Utilisez opendiff (inclus avec XCode, gratuit) et voyez les modifications


0

Il existe également une ligne gratuite https://www.diffchecker.com/diff .

Mais il ne met en évidence que les différences de texte sans images ni formatage. Et il est trop faible pour faire correspondre des fragments non modifiés dans des fichiers volumineux.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.