2009-09-24 09:45:45 +0000 2009-09-24 09:45:45 +0000
209
209

Jak porównać różnice między dwoma plikami PDF w systemie Windows?

Czy znasz dobry sposób na porównanie plików PDF obok siebie i pokazanie modyfikacji między nimi?

Szukam oprogramowania Windows, aby to osiągnąć. Byłoby wspaniale gdybyś mógł zamieszczać zarówno darmowe jak i nie darmowe produkty.

Odpowiedzi (18)

173
173
173
2011-05-22 17:46:19 +0000

Na Linuksie i Windows możesz użyć diffpdf (co różni się od diff-pdf wspomnianego w tym wątku).

Na Ubuntu zainstaluj używając:

sudo apt-get install diffpdf

Zobacz dalej ta strona UbuntuGeek o porównywaniu pds tekstowo lub wizualnie .

Dla Windows , ta wersja Diffpdf Windows działa naprawdę świetnie. Możesz pobrać z http://soft.rubypdf.com/software/diffpdf (przewiń w dół do Win32 statyczna wersja).

111
111
111
2009-09-24 14:29:20 +0000

Spróbuj WinMerge z wtyczką xdocdiff . Oba są całkowicie darmowe. Nie ma dołączonych sznurków.

  • *

Kilka poniższych komentarzy sugeruje, że nie widzą żadnej różnicy. Oznacza to, że wtyczka nie jest zainstalowana poprawnie. Oto jak:

  1. Umieść pliki w miejscu, w którym znajduje się plik readme wtyczki xdocdiff (są dwa miejsca; nie będę ich tutaj wymieniał, ponieważ nazwy plików mogą się zmieniać, etc. - czytaj readme)

  2. W WinMerge'u przejdź do Plugins > List i zaznacz pole wyboru “Enable Plugins” (tego kroku brakuje w pliku readme xdocdiff)

  3. W WinMerge'u wybierz Plugins > Automatic Unpacking (przed krokiem 2 zostało to wyłączone)

Następnie w oknie porównywania zobaczysz, jak wyglądają pliki tekstowe.

44
44
44
2011-01-06 16:59:33 +0000

Niedawno znalazłem to i uwielbiam to. https://github.com/vslavik/diff-pdf

Cross platform, free, i działa dobrze.

Oto zrzut ekranu z diff-pdf w akcji - zauważ, że tekst nie różni się w PDF, a jedynie czcionki (i odpowiednio, ustawienia układu):

Wezwanie do uzyskania tego obrazu było:

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

 

. … gdzie testA.pdf/testB.pdf uzyskuje się poprzez kompilację tego prostego pliku lateksowego z pdflatex (odpowiednio dla każdego pliku pdf, patrz komentarz):

\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}
22
22
22
2012-09-05 07:12:08 +0000

Musieliśmy również porównać pliki PDF w naszej firmie i nie byliśmy zadowoleni z żadnego z rozwiązań, które znaleźliśmy, więc zrobiliśmy własne: i-net PDFC . Nie jest darmowy, ale oferujemy 30-dniową wersję próbną.

Jest napisany w języku Java, więc jest wieloplatformowy.

Co czyni go wyjątkowym, to fakt, że porównuje on treść w przeciwieństwie do samego tekstu (lub po prostu konwertuje PDF na obraz i porównuje obraz). Ma również ładne wizualne narzędzie do porównywania.

11
11
11
2010-12-03 09:51:50 +0000

Można również skorzystać z programu Adobe Acrobat X. Ma on wbudowaną funkcję porównywania plików PDF pod “Widok -> Porównaj dokumenty”.

10
10
10
2013-09-28 03:47:29 +0000

Chciałem to zrobić (PDF-y diff) ostatnio z tymi wymaganiami:

  • ignorowanie białej przestrzeni, przerw w liniach, przerw w stronach, itp.
  • łatwo zobaczyć, kiedy zmieniło się tylko kilka słów, a nie tylko całe linie/paragrafy.
  • wyjście różnic kolorów

Instalowałem pdftotext, wdiff i colordiff, dostępne w różnych menedżerach pakietów. (Z makroportami: sudo port install poppler wdiff colordiff)

Następnie:

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

Teraz widzę, które słowa, ładnie kolorowe, uległy zmianie.

Więcej szczegółów: http://philfreo.com/blog/how-to-view-a-color-diff-of-text-from-two-pdfs/

Wariacja:

Używanie dwdiff może dać nieco lepsze rezultaty.

Chciałem również wyjście HTML, więc ten malutki skrypt tworzy podstawową stronę internetową z odrobiną CSS.

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

Następnie otwórz q.html za pomocą przeglądarki internetowej.

pc-script.bash plik:

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

Przykładowe wyjście można zobaczyć tutaj

7
7
7
2009-09-24 13:40:01 +0000

Jeśli porównujesz tekst wewnątrz pdf, wtedy Beyond Compare robi to.

Nie za darmo, ale jest trzydziestodniowa próba.

2
2
2
2010-12-16 12:24:34 +0000

Nie wiem, ale jest też porównaniePDF (nie za darmo, ale możliwy jest 30-dniowy test): http://www.compare-pdf.com/download.htm

1
1
1
2016-02-17 12:10:03 +0000

Tutaj możesz wgrać dwa pliki pdf i odzyskać trzeci, który wyświetli Ci różnicę między nimi.

Działa na wszystkich platformach, nie uczy się niczego i nie instaluje i jest darmowy. https://synodins.com/apps/pdf\\u003_różnica/intro.html

1
1
1
2009-09-24 09:50:05 +0000

Free, Not the best but…

I open both documents up and have them split screen against each other.

Not the most practical solution, but it works!

I have not seen a good DIFF package for PDF files and while manual and annoirising, my way works!

0
0
0
2020-02-28 21:17:24 +0000

Moja propozycja najlepszego narzędzia do porównywania plików PDF to Kiwi PDF Comparer .

W przeciwieństwie do większości, możesz porównywać zarówno tekst jak i obrazy w dokumencie, a także masz inną opcję porównywania stron piksel w piksel. Porównując tekst ma większą rozdzielczość opalenizny wszystkich innych, ponieważ podświetla zmienione znaki, a nie całe słowa.

Musi to być również jedyny program do robienia różnic PDF, w którym nie musisz szukać zaznaczonych różnic, ponieważ możesz przejść od jednej różnicy do drugiej tylko jednym kliknięciem.

Istnieje darmowa wersja, która działa bardzo dobrze, ale płatna wersja jest również najtańsza z różnicą pomiędzy profesjonalnymi aplikacjami. Napisana w języku Java może być uruchomiona na Windows, Linux i Mac OS.

0
0
0
2016-07-26 22:42:20 +0000

pdf-diff jest pakietem Pythona do tego celu.

0
0
0
2009-09-24 10:47:45 +0000

Komercyjny: Możesz użyć oryginalnego Adobe Acrobat Professional, za jedyne 449 dolarów: Porównaj poprawiony PDF z wcześniejszą wersją .

Jeśli zdecydujesz się na Acrobat, komentarze na tej stronie odnoszą się do jego użycia.

0
0
0
2009-09-24 12:31:16 +0000

Diff Doc - nie za darmo.

0
0
0
2009-09-24 10:04:34 +0000

Kolejne mniej niż idealne rozwiązanie:

  1. Konwersja obu plików PDF do dokumentów Microsoft Word za pomocą jednej z stron internetowych, które robią to za darmo .
  2. Użyj funkcji porównania dokumentów w programie Word.

W zależności od tego, jak skomplikowane jest formatowanie w plikach PDF i jakich zmian szukasz, może to być OK.

0
0
0
2013-01-21 13:35:52 +0000

Użyłem tego (nieidealnego, ale dla mnie wystarczającego) rozwiązania:

  • Konwersja PDF na zwykły tekst (w moim przypadku z Adobe Reader, darmowa aplikacja)
  • Użycie opendiffa (dołączony do XCode, darmowy) i zobacz zmiany
0
0
0
2019-02-26 10:15:54 +0000

Jest również darmowy online https://www.diffchecker.com/diff .

Ale podkreśla tylko różnice w tekście bez obrazów i formatowania. I jest zbyt słaby w dopasowywaniu niezmienionych fragmentów w dużych plikach.

0
0
0
2011-12-21 23:27:52 +0000

Dla bardzo prymitywnej formy zsynchronizowanego przewijania pomiędzy dwoma plikami pdf, można użyć następującego skryptu autohotkey, który napisałem. Zakłada on, że masz otwarte dwa okna SumatraPDF. Naciśnij prawy klawisz, aby przejść do następnej strony w obu oknach, naciśnij lewy, aby przejść do poprzedniej strony.

#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