Come confrontare le differenze tra due file PDF su Windows?


205

Conosci un buon modo per confrontare i file PDF fianco a fianco e mostrare le modifiche tra i due?

Sto cercando un software Windows per raggiungere questo obiettivo. Sarebbe bello se puoi pubblicare prodotti sia gratuiti che non gratuiti.



1
C'è una libreria GRATUITA per confrontare pdf pixel per pixel. Controlla questo blog: testautomationguru.com/…
Vinoth S,

Risposte:


109

Prova WinMerge con il plugin xdocdiff . Entrambi sono completamente gratuiti. Senza obblighi.


Un paio dei commenti qui sotto suggeriscono che non vedono alcuna differenza. Ciò significa che il plug-in non è installato correttamente. Ecco come:

  1. Inserisci i file in cui il xdocdifffile readme del plug-in dice di metterli (ci sono due posizioni; non li elencherò qui poiché i nomi dei file possono cambiare, ecc. - leggi il file Leggimi)

  2. In WinMerge, vai su Plugin> Elenco e spunta la casella "Abilita Plugin" (questo passaggio non è presente nel file xdocdiffLeggimi)

  3. In WinMerge, selezionare Plugin> Disimballaggio automatico (disabilitato prima del passaggio 2)

Quindi, durante il confronto, vedrai come appaiono i file di testo nelle finestre di confronto.


Ho provato questo, ma non ho visto alcuna differenza quando non si utilizza il plug-in xdocdiff. Esiste un'opzione per selezionare nell'interfaccia utente di WinMerge?
Umber Ferrule,

1
Qual è lo scopo di visualizzare il testo binario in un PDF? Mi aspettavo di vedere le differenze visive come fatto da i-net PDFC .
JJD

Esiste un modo per interrompere questa colonna di handle? Senza di essa, un cambiamento si trasforma in diversi.
Stuart,

1
Plugins > List and tick the "Enable Plugins" checkboxera quello che mi mancava!
Seph


168

Su Linux e Windows puoi usare diffpdf(che differisce da quanto diff-pdfmenzionato in questo thread).

inserisci qui la descrizione dell'immagine

Sull'installazione di Ubuntu usando:

sudo apt-get install diffpdf

Vedi oltre questa pagina UbuntuGeek sul confronto dei pds testualmente o visivamente .

Per Windows , questa versione di Windows Diffpdf funziona davvero alla grande. È possibile scaricare da http://soft.rubypdf.com/software/diffpdf (scorrere fino alla versione statica di Win32 ).


12
Il nome proprio è DiffPDF (come si vede nella schermata) ed è basato su Qt 4 e sulla libreria Poppler, quindi è portatile. Vedi la homepage di DiffPDF : qtrac.eu/diffpdf.html . Le informazioni sulla build di Windows sono disponibili qui: soft.rubypdf.com/software/diffpdf . E le tue istruzioni di installazione funzionano anche su Debian.
przemoc,

3
La home page di DiffPDF ora contiene collegamenti anche per installazioni Linux, Windows installer e Mac DMG ( qtrac.eu/diffpdf.html ).
Studgeek

6
Secondo me, DiffPDF è lo strumento più avanzato presentato qui. Non solo offre un piacevole confronto grafico, ma tiene traccia delle modifiche in modo più intelligente rispetto ad altri, ad esempio xdocdiff per WinMerge. Tuttavia, ha un problema serio: limita il confronto con le pagine. Ciò significa che se hai del testo a pagina 2 del documento A, ma questo testo si sposta alla pagina 3 del documento B, lo strumento pensa che sia andato in A e aggiunto in B.
ca

7
Le versioni gratuite precedenti sono disponibili qui
Shafik Yaghmour,

3
Ho provato a usarlo per un romanzo che esporto in PDF. Purtroppo lo strumento ha perso traccia dopo circa 10 pagine e ha considerato tutto "diverso", anche se i passaggi di grandi dimensioni erano esattamente gli stessi.
Eric J.

42

Di recente l'ho trovato e lo adoro.

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

Cross platform, gratuito e funziona bene.

Ecco uno screenshot di diff-pdfin azione - nota che il testo non è diverso nel PDF, ma solo i caratteri (e, di conseguenza, le impostazioni di layout):

diff-pdf.png

La chiamata per ottenere quell'immagine era:

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

 

... dove testA.pdf / testB.pdf sono ottenuti compilando questo semplice file Latex con pdflatex(di conseguenza per ogni pdf, vedi commento):

\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
Ancora una nota in più diff-pdf: DiffPDF è ottimo per un rapido confronto visivo fianco a fianco del testo modificato, ma è praticamente impossibile eseguire il debug di cose come, diciamo, piccoli cambiamenti nella spaziatura delle righe - diff-pdfd'altra parte, sostanzialmente mette il contenuto della pagina da entrambi i file confrontati sulla stessa pagina (ma con colore diverso) - così i problemi di spaziatura possono essere facilmente identificati ... Saluti!
sdaau,

Questo è fantastico! Esiste un modo per tenere traccia dei progressi su file di grandi dimensioni quando si esegue l'output in un file PDF (non utilizzando l'opzione --view)? L'opzione / v dettagliata non sembra fare nulla. Inoltre, quando si esegue il comando per generare un PDF di confronto, viene eseguito in un processo separato in modo da non mettere in pausa il prompt dei comandi come accade normalmente quando si esegue qualcosa dal prompt.
Luca,

Questo è quello di cui avevo bisogno. Sto confrontando i report PDF sulle esecuzioni numeriche, quindi sto cercando differenze di una cifra in un'intera pagina. Il problema è che non riesco a identificare i caratteri ciano, ma sapere dove si trova la differenza è sufficiente per trovarlo nei rapporti originali.
manuelvigarcia,

22

Avevamo anche bisogno di confrontare i PDF nella nostra azienda e non eravamo soddisfatti di nessuna delle soluzioni che abbiamo trovato, quindi abbiamo creato il nostro: i-net PDFC . Non è gratuito, ma offriamo una prova di 30 giorni.

È scritto in Java, quindi è multipiattaforma.

immagine dello schermo

Ciò che lo rende speciale è che confronta il contenuto anziché solo il testo (o semplicemente convertendo il pdf in un'immagine e confrontando l'immagine). Ha anche un bel strumento di confronto visivo.


1
Bel software.
Umber Ferrule,

Non sono riuscito a farlo funzionare. Ho caricato i due file e fatto clic sul pulsante Confronta e non succede nulla.
Craig Fisher,

1
Gestisce correttamente le differenze tra le pagine. Ha una funzionalità di esportazione / stampa. Diversi profili di confronto (incluso personalizzato). Passa il mouse sopra per maggiori dettagli su cosa è cambiato. Sembra fantastico. Gli svantaggi sono la versione di prova / costo e non gestisce le mosse. Decisamente superiore agli strumenti IMO più votati.
Jonathan Gawrych,

@JonathanGawrych grazie per le belle parole! Cosa intendi con "mosse", esattamente? Forse potremmo aggiungere quella funzionalità ...
Epaga il

@Epaga Se una sezione di testo viene spostata da una pagina all'altra, viene visualizzata come eliminazione e aggiunta. Ad esempio, confrontare le proposte c ++ N4663 e N4680 . Vedi intorno a pagina 19, un esempio viene spostato dal paragrafo 11 all'8, tuttavia viene trattato come un'aggiunta / eliminazione. Per vedere le differenze effettive, è necessario rilevare manualmente qualcosa spostato, quindi copiare l'esempio in un altro strumento diff per vedere che le cose sono state aggiunte all'esempio (unhandled_exception, return_void, ecc.)
Jonathan Gawrych il


10

Volevo farlo recentemente (PDF diff) con questi requisiti:

  • ignora spazi bianchi, interruzioni di riga, interruzioni di pagina, ecc.
  • vedere facilmente quando sono cambiate solo un paio di parole, non solo intere righe / paragrafi.
  • colore diff output

Ho installato pdftotext, wdiff e colordiff, disponibili in vari gestori di pacchetti. (Con macports: sudo port install poppler wdiff colordiff)

Poi:

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

Ora posso vedere quali parole, ben colorate, sono cambiate.

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

Variazione:

L'uso dwdiffpuò produrre risultati leggermente migliori.

Volevo anche l'output HTML, quindi questo piccolo script crea una pagina Web di base con un po 'di CSS.

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

Quindi apri q.htmlcon il tuo browser web.

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

Un esempio di output può essere visto qui

inserisci qui la descrizione dell'immagine


@philcolbourn Google+ sta per essere chiuso, forse condividi lo screenshot tramite imgur?
myrdd il

prima, mi sono imbattuto in questo piccolo repository: github.com/tpltnt/cli-diffpdf/blob/master/cli-diffpdf.sh
myrdd

Se stai usando Windows, Mac, Fedora, openSUSE o sei in grado di compilare i binari dal sorgente per il tuo sistema, diff-pdf è una soluzione migliore che lo fa senza la necessità di installare tre diverse dipendenze. Da non confondere con il diffpdf menzionato in un'altra risposta, che funziona solo tramite la GUI.
Hashim,

Si noti che lo pc-script.bashscript non sfugge ai caratteri per HTML.
Federico

7

Se stai confrontando il testo all'interno di un pdf, Beyond Compare lo fa.

Non gratuito, ma c'è una prova di trenta giorni.


Sì, New > Text Comparemi ha aiutato a vedere le differenze di base nel testo tra 2 file PDF.
Ryan,

6

Ottimo strumento e facile da usare: Compare-It v4 (da http://www.grigsoft.com/ )

Confronta molti diversi tipi di file. Ha alcuni convertitori integrati, incluso uno per i file PDF.

L'ho usato parecchie volte con risultati soddisfacenti.

Dovrei davvero provare questo. La versione di prova consente il confronto per un tempo illimitato.


1
Questo è stato il migliore e il più semplice di tutti per me. Grazie!
Ankur Jain,

Strumento più semplice e più semplice che ho trovato da usare. Vorrei poter votare questo più di una volta!
Chad,

Per PDF il confronto sembra essere testuale. Ultima versione del 2010. Puoi pagarla ma sei sicuro di quale sia la differenza: non ho riscontrato alcun limite?
Zitrax,


1

Gratuito, non il migliore ma ...

Apro entrambi i documenti e li faccio dividere lo schermo uno contro l'altro.

Non è la soluzione più pratica, ma funziona!

Non ho visto un buon pacchetto DIFF per i file PDF e mentre manuale e fastidioso, il mio modo funziona!


Hum ... non proprio quello che stavo cercando, ma grazie.
Nelson Reis,

Siamo spiacenti, non conosco una buona risposta ma sto solo dicendo che non ho mai trovato un buon strumento per i file PDF.
William Hilsum,

3
incrocia gli occhi in modo che le due copie si sovrappongano e tutte le differenze sembreranno tremolanti. : D
endolith

Versione ottimizzata di questo metodo: apri entrambi i file PDF in acrobat reader a schermo intero tramite CTRL + L, quindi usa CTRL + F6 per passare da un file PDF all'altro, tutto ciò che si muove è diverso ...
Bernard Vander Beken,


0

Un'altra soluzione tutt'altro che ideale:

  1. Converti entrambi i PDF in documenti di Microsoft Word utilizzando uno dei siti Web che lo fanno gratuitamente .
  2. Utilizzare la funzionalità di confronto dei documenti in Word.

A seconda della complessità della formattazione nei PDF e del tipo di modifiche che stai cercando, potrebbe essere OK.


In questo caso sarebbe difficile, poiché ci sono molti documenti PDF e le modifiche avvengono molto frequentemente. Ma grazie per il suggerimento.
Nelson Reis,

Inoltre, non eccezionale per l'output LaTeX: non ho trovato uno di questi convertitori che gestisca correttamente le legature, ecc.
Chris H,

0

Commerciale: puoi utilizzare Adobe Acrobat Professional originale, per un enorme $ 449:
confronta un PDF rivisto con una versione precedente .

Se decidi su Acrobat, i commenti su questa pagina sono pertinenti al suo utilizzo.


"per un enorme $ 449" ... e quanti MB di spazio su disco?
Hugh Allen,

3
@Hugh Allen: un sacco di spazio su disco e alcune decine di migliaia di voci nel registro. Un vero bloatware.
harrymc,

Articolo aiuto Aggiornamento per Adobe Acrobat XI: adobe.com/uk/products/acrobat/file-compare-two-pdf-files.html
Squig

Ed è comunque pieno
Michal Sokolowski


0

Per una forma molto primitiva di scorrimento sincronizzato tra due file pdf, puoi usare il seguente script autohotkey che ho scritto. Presuppone che tu abbia due finestre SumatraPDF aperte. Premi il pulsante destro per passare alla pagina successiva in entrambe le finestre, premi il pulsante sinistro per la pagina precedente.

#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

Ho usato questa soluzione (non ideale, ma per me sufficiente):

  • Converti PDF in testo semplice (nel mio caso con Adobe Reader, app gratuita)
  • Usa l'opendiff (incluso con XCode, gratuito) e guarda le modifiche


0

C'è anche https://www.diffchecker.com/diff online gratuito .

Ma evidenzia solo differenze di testo senza immagini e formattazione. Ed è troppo debole per abbinare frammenti invariati in file di grandi dimensioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.