Question

Je dois comparer un grand nombre de fichiers PDF pour leur contenu optique. Parce que les fichiers PDF ont été créés sur différentes plates-formes et avec différentes versions du logiciel, il existe des différences structurelles. Par exemple:

  • le découpage de texte peut être différent
  • l'ordre d'écriture peut être différent
  • la position peut différer de quelques pixels

Il convient de comparer le contenu comme un peuple humain et non la structure interne. Je souhaite tester les régressions entre les différentes versions du générateur de PDF utilisé.

Était-ce utile?

La solution

Parce qu’il n’existe pas d’outil de ce type, nous en avons écrit un. Vous pouvez télécharger le comparateur de contenu PDF i-net et l'utiliser. J'espère que d'autres aider avec le même problème. Si vous rencontrez des problèmes ou si vous souhaitez nous faire part de vos commentaires, vous pouvez contacter notre service d'assistance.

entrer la description de l'image ici

Autres conseils

Il existe en fait un outil diffpdf.

http://www.qtrac.eu/diffpdf.html

Sa faiblesse est qu’il ne réagit pas bien lorsque des ajouts déplacent partiellement le nouveau texte sur une nouvelle page. Par exemple, si l'ancienne page 4 doit être comparée à la fin de la page 5 et au début de la page 6, vous devrez déplacer les paramètres pour comparer les deux tranches séparément.

J'ai utilisé un script maison qui

  • convertit toutes les pages de deux PDF en images bitmap
  • coloriez les pages du PDF 1 en rouge sur blanc
  • change le blanc en transparent sur les pages du PDF 2
  • superpose chaque page du PDF 2 au-dessus de la page correspondante du PDF 1
  • exécute la conversion / coloration et la superposition en parallèle sur plusieurs cœurs

Logiciels utilisés:

  • GhostScript pour la conversion de PDF à bitmap
  • ImageMagick pour la coloration, la transparence et la superposition
  • inotify pour la synchronisation des processus parallèles
  • toute visionneuse d'images compatible PNG pour examiner le résultat

Avantages:

  • implémentation simple
  • tous les outils utilisés sont open source
  • idéal pour trouver de petites différences dans la mise en page

Inconvénients:

  • la conversion est lente
  • Les différences majeures entre les PDF (par exemple, la pagination) entraînent un désordre
  • les bitmaps ne sont pas zoomables
  • ne fonctionne que pour le texte et les diagrammes en noir et blanc
  • pas d'interface graphique facile à utiliser

Je recherchais un outil qui ferait la même chose au niveau PDF / PostScript.

Voici comment notre script appelle les utilitaires (notez que ImageMagick utilise GhostScript en arrière-plan pour effectuer la conversion PDF- & PNG):

$ convert -density 150x150 -fill red -opaque black +antialias 1.pdf back%02d.png
$ convert -density 150x150 -transparent white +antialias 2.pdf front%02d.png
$ composite front01.png back01.png result01.png # do this for all pairs of images

Je ne semble pas pouvoir voir ceci ici, alors le voici: via superutilisateur: Comment comparer les différences entre deux fichiers PDF? (réponse # 229891, de @slestak) , il y a

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

(les étapes de construction pour Ubuntu Natty sont disponibles dans get-diff-pdf.sh )

Autant que je sache, il superpose le texte / les graphiques de chaque page du (des) fichier (s) pdf, ce qui vous permet de voir facilement s’il ya eu des changements ...

Salut!

Nous avons également utilisé pdftotext (voir la réponse de Sklivvz) pour générer des versions ASCII de PDF et wdiff pour les comparer.

Utilisez le commutateur -layout de pdftotext pour améliorer la lisibilité et donner une idée des modifications apportées à la présentation.

Pour obtenir une sortie colorée agréable de wdiff, utilisez ce script de wrapper:

#!/bin/sh
RED=\e'"[1;31m"
GREEN=\e'"[1;32m"
RESET=\e'"[0m"
wdiff -w$RED -x$RESET -y$GREEN -z$RESET -n $1 $2

Je pense que votre meilleure approche serait de convertir le PDF en images avec une résolution décente et de comparer les images.

Pour générer des images à partir de PDF, vous pouvez utiliser Adobe PDF Library ou la solution suggérée à l'adresse Meilleur moyen de convertir des fichiers PDF en fichiers tiff .

Pour comparer les fichiers TIFF générés, j’ai trouvé GNU tiffcmp (pour Windows fait partie de GnuWin32 tiff ) et tiffinfo a fait du bon travail. Utilisez tiffcmp -l et comptez le nombre de lignes de sortie pour trouver les différences. Si vous souhaitez modifier légèrement le contenu (par exemple, des différences d’anticrénelage), utilisez tiffinfo pour compter le nombre total de pixels. Vous pouvez ensuite générer une valeur de différence en pourcentage.

Soit dit en passant, pour toute personne effectuant une comparaison PDF simple dans laquelle la structure n’a pas changé, il est possible d’utiliser le diff de ligne de commande et d’ignorer certains modèles, par exemple. avec GNU diff 2.7:

diff --brief -I xap: -I xapMM: -I /CreationDate -I /BaseFont -I /ID --binary --text

Cela pose toujours le problème suivant: les modifications apportées aux noms de police générés ne sont pas toujours prises en compte.

Notre produit, comparateur PDF - http://www.premediasystems.com/pdfc.html " - le fera avec élégance et efficacité. Ce n’est pas non plus gratuit, il s’agit uniquement d’une application Mac OS X.

Selon vos besoins, une solution de conversion en texte serait la plus simple et la plus directe. Je pensais que l'idée de bitmap était plutôt cool.

Le logiciel bluebeam pdf le fera pour vous

Vous pouvez grouper les fichiers PDF par lots avec Tarkware Pdf Comparer. Mais ce n’est pas gratuit et nécessite Adobe Acrobat.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top