web-dev-qa-db-fra.com

Outil pour comparer un grand nombre de fichiers PDF?

Je dois comparer un grand nombre de fichiers PDF pour ce 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 différences structurelles, par exemple:

  • la segmentation du texte peut être différente
  • l'ordre d'écriture peut être différent
  • la position peut différer de quelques pixels

Il devrait comparer le contenu comme un peuple humain et non la structure interne. Je veux tester les régressions entre les différentes versions du générateur PDF que nous avons utilisé.

83
Horcrux7

Parce qu'il n'y a pas un tel outil disponible que nous en avons écrit un. Vous pouvez télécharger le i-net PDF content comparer et l'utiliser. J'espère que cela aidera les autres avec le même problème. Si vous avez des problèmes avec lui ou si vous avez des commentaires pour nous, vous pouvez contacter notre support.

enter image description here

39
Horcrux7

Il existe en fait un outil diffpdf.

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

Sa faiblesse est qu'il ne réagit pas bien lorsque les ajouts font que le nouveau texte se déplace partiellement vers 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 modifier les paramètres pour comparer les deux tranches séparément.

20
jabial

J'ai utilisé un script fait maison qui

  • convertit toutes les pages de deux PDF en bitmaps
  • pages couleurs de PDF 1 à rouge sur blanc
  • passe du blanc au transparent sur les pages de PDF 2
  • superpose chaque page de PDF 2 en haut de la page correspondante de 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 en bitmap
  • ImageMagick pour la coloration, la transparence et la superposition
  • inotify pour synchroniser les processus parallèles
  • n'importe quelle visionneuse d'images compatible PNG pour revoir le résultat

Avantages:

  • mise en œuvre simple
  • tous les outils utilisés sont open source
  • idéal pour trouver de petites différences dans la disposition

Les inconvénients:

  • la conversion est lente
  • les différences majeures entre les PDF (p. ex. la pagination) entraînent un gâchis
  • les bitmaps ne sont pas zoomables
  • ne fonctionne bien que pour le texte et les diagrammes en noir et blanc
  • pas de GUI facile à utiliser

Je cherchais un outil qui ferait de même 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
13
akaihola

Je ne semble pas être en mesure de voir cela ici, alors voici: via superutilisateur: comment comparer les différences entre deux fichiers PDF?? (Réponse # 229891, par @slestak) , il y a

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

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

Pour autant que je sache, il superpose essentiellement le texte/graphiques de chaque page dans le (s) pdf (s), vous permettant de voir facilement s'il y a eu des changements ...

À votre santé!

12
sdaau

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

Utilisez le commutateur -layout De pdftotext pour améliorer la lisibilité et avoir une idée des changements dans la mise en page.

Pour obtenir une sortie colorée de Nice à partir de wdiff, utilisez ce script 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
8
akaihola

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

Pour générer des images à partir de PDF vous pouvez utiliser Adobe PDF Library ou la solution suggérée à Meilleure façon de convertir des fichiers pdf en fichiers tiff .

Pour comparer les fichiers TIFF générés, j'ai trouvé GNU tiffcmp (pour une partie Windows 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 êtes satisfait d'avoir un petit changement de contenu (par exemple, des différences d'anti-aliasing), utilisez tiffinfo pour compter le nombre total de pixels et vous pouvez alors générer une valeur de différence en pourcentage.

Soit dit en passant, pour quiconque fait une simple comparaison PDF où la structure n'a pas changé, il est possible d'utiliser diff en 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 a toujours le problème de ne pas toujours intercepter les modifications des noms de police générés.

4
danio

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

1
user602475

Notre produit, PDF Comparator - http://www.premediasystems.com/pdfc.html "-, le fera de manière élégante et efficace. Ce n'est pas non plus gratuit, et est une application Mac OS X uniquement.

1
Peter Truskier

le logiciel pdf bluebeam le fera pour vous

0
M Jenkins

Vous pouvez batch comparer pdf fichiers avec Tarkware Pdf Comparer. Mais ce n'est pas gratuit et nécessite Adobe Acrobat.

0
erks