Remarque : ce référentiel est fourni tel quel et le code n'est pas en cours de développement actif. Si vous souhaitez l'améliorer, c'est très apprécié : veuillez apporter les modifications et soumettre une pull request, je me ferai un plaisir de le fusionner ou de vous aider à le terminer. Cependant, ne vous attendez à aucune forme d’assistance, y compris la mise en œuvre de demandes de fonctionnalités ou de correctifs. Si vous n'êtes pas développeur et/ou prêt à vous salir les mains, cet outil n'est probablement pas pour vous.
diff-pdf est un outil permettant de comparer visuellement deux PDF.
Il prend deux fichiers PDF comme arguments. Par défaut, sa seule sortie est son code retour, qui est 0 s'il n'y a pas de différence et 1 si les deux PDF diffèrent. Si l'on lui donne l'option --output-diff
, il produit un fichier PDF avec des différences visuellement mises en évidence :
$ diff-pdf --output-diff=diff.pdf a.pdf b.pdf
Une autre option consiste à comparer visuellement les deux fichiers dans une interface graphique simple, en utilisant l'argument --view
:
$ diff-pdf --view a.pdf b.pdf
Cela ouvre une fenêtre qui vous permet de visualiser les pages des fichiers et de zoomer sur les détails. Il est également possible de décaler les deux pages l'une par rapport à l'autre à l'aide des flèches Ctrl (flèches Cmd sur MacOS). Ceci est utile pour identifier les différences liées à la traduction uniquement.
Voir le résultat de $ diff-pdf --help
pour la liste complète des options.
Une version précompilée de l'outil pour Windows est disponible dans la dernière version sous forme d'archive ZIP, qui contient tout ce dont vous avez besoin pour exécuter diff-pdf. Il fonctionnera depuis n'importe quel endroit où vous le déballez.
Alternativement, si vous utilisez Chocolatey, vous pouvez installer diff-pdf sur Windows avec :
$ choco install diff-pdf
Sur Mac, si vous utilisez Homebrew, vous pouvez l'utiliser pour installer diff-pdf avec :
$ brew install diff-pdf
Sur Mac, si vous utilisez Macports, vous pouvez installer diff-pdf avec :
$ port install diff-pdf
Sur Fedora et CentOS 8 :
$ sudo dnf install diff-pdf
La version précompilée pour openSUSE peut être téléchargée à partir du service de build openSUSE.
Le système de build utilise Automake et donc un environnement Unix ou de type Unix (Cygwin ou MSYS) est requis. La compilation se fait de la manière habituelle :
$ ./bootstrap
$ ./configure
$ make
$ make install
(Notez que la première étape, l'exécution du script ./bootstrap
, n'est requise que lors de la création de sources vérifiées à partir du système de contrôle de version, c'est-à-dire lorsque les fichiers configure
et Makefile.in
sont manquants.)
Quant aux dépendances, diff-pdf nécessite les bibliothèques suivantes :
$ sudo yum groupinstall "Development Tools"
$ sudo yum install wxGTK wxGTK-devel poppler-glib poppler-glib-devel
$ sudo apt-get install make automake g++
$ sudo apt-get install libpoppler-glib-dev poppler-utils libwxgtk3.2-dev
$ sudo apt-get install make automake g++
$ sudo apt-get install libpoppler-glib-dev poppler-utils libwxgtk3.0-gtk3-dev
Installez les outils de ligne de commande pour Xcode :
$ xcode-select --install
et installez Homebrew ou MacPorts pour gérer les dépendances, puis :
$ brew install automake autoconf wxmac poppler cairo pkg-config
ou
$ sudo port install automake autoconf wxWidgets-3.0 poppler cairo pkgconfig
Notez que beaucoup plus de bibliothèques sont requises sous Windows, où aucune des bibliothèques utilisées par Cairo et Poppler n'est normalement disponible. Au moment de la rédaction de cet article, la couverture transitive des dépendances ci-dessus incluait fontconfig, freetype, glib, libpng, pixman, gettext, libiconv, libjpeg et zlib.
Tout d’abord, vous aurez besoin d’une installation MinGW fonctionnelle avec l’environnement MSYS2 et le compilateur C++. Installez MSYS2 en suivant leurs instructions.
Une fois installé, lancez le shell MSYS2 MinGW. Cela ouvrira une fenêtre de terminal ; tapez cd /c/directory/with/diff-pdf
pour accéder au répertoire contenant les sources diff-pdf.
Vous devrez installer des composants MSYS supplémentaires qui ne sont normalement pas inclus avec MSYS, à l'aide de ces commandes :
$ pacman -Syu
$ pacman -S automake autoconf pkg-config make zip pactoys
$ pacboy -S gcc:p poppler:p wxWidgets:p
Construisez diff-pdf de la même manière que dans les instructions pour Unix ci-dessus :
$ ./bootstrap # only if building from git repository
$ ./configure
$ make
Pour créer une archive ZIP avec toutes les DLL, exécutez
$ make windows-dist
Sous Unix, l' make install
est suffisante.
Sous Windows, l'installation n'est pas nécessaire, copiez simplement les fichiers quelque part. Si vous l'avez construit en suivant les instructions ci-dessus, tous les fichiers nécessaires seront dans l'archive ZIP créée.