Muszę porównać dużą liczbę plików PDF pod kątem zawartości optycznej. Ponieważ pliki PDF zostały utworzone na różnych platformach i przy różnych wersjach oprogramowania, istnieją różnice strukturalne. Na przykład:
- fragment tekstu może być inny
- kolejność zapisu może być inna
- pozycja może się różnić o kilka pikseli
Powinien porównywać zawartość jak ludzie, a nie strukturę wewnętrzną. Chcę przetestować regresje między różnymi wersjami generatora PDF, którego używaliśmy.
Odpowiedzi:
Ponieważ nie ma takiego narzędzia, które napisaliśmy. Możesz pobrać i-net PDF do porównywania treści i używać go. Mam nadzieję, że pomogą innym z tym samym problemem. Jeśli masz z tym problemy lub masz do nas opinię, możesz skontaktować się z naszym wsparciem.
źródło
W rzeczywistości istnieje narzędzie diffpdf.
http://www.qtrac.eu/diffpdf.html
Jego słabość polega na tym, że nie reaguje dobrze, gdy dodatki powodują częściowe przesunięcie nowego tekstu na nową stronę. Na przykład, jeśli starą stronę 4 należy porównać z końcem strony 5 i początkiem strony 6, należy przesunąć parametry, aby porównać dwa wycinki oddzielnie.
źródło
Użyłem własnego skryptu, który
Użyte oprogramowanie:
Plusy:
Cons:
Szukałem narzędzia, które zrobiłoby to samo na poziomie PDF / PostScript.
Oto jak nasz skrypt wywołuje narzędzia (zwróć uwagę, że ImageMagick używa GhostScript za kulisami do wykonania konwersji PDF-> PNG):
źródło
for i in $(seq -w 0 05); do /cygdrive/c/Progra~1/ImageMagick-6.6.9-Q8/composite.exe 1-$i.png 2-$i.png result-$i.png; done
pdfdiff
katalogu i dodatkowo drukuje numery stron, które różnią się między dwoma plikami PDF.Wydaje się, że nie widzę tego tutaj, więc oto jest: przez superużytkownika: Jak porównać różnice między dwoma plikami PDF? (odpowiedź # 229891, @slestak) , jest
https://github.com/vslavik/diff-pdf
(kroki kompilacji dla Ubuntu Natty można znaleźć w get-diff-pdf.sh )
O ile widzę, w zasadzie nakłada tekst / grafikę każdej strony w plikach PDF, umożliwiając łatwe sprawdzenie, czy były jakieś zmiany ...
Twoje zdrowie!
źródło
Użyliśmy również pdftotext (zobacz odpowiedź Sklivvz) do wygenerowania wersji ASCII plików PDF i wdiff do ich porównania.
Użyj
-layout
przełącznika pdftotext, aby zwiększyć czytelność i uzyskać pewne wyobrażenie o zmianach w układzie.Aby uzyskać ładne kolorowe wyjście z wdiff, użyj tego skryptu opakowującego:
źródło
Myślę, że najlepszym rozwiązaniem byłoby przekonwertowanie pliku PDF na obrazy w przyzwoitej rozdzielczości, a następnie porównanie obrazów.
Aby wygenerować obrazy z PDF, możesz skorzystać z Adobe PDF Library lub rozwiązania sugerowanego w Best way do konwersji plików PDF na pliki TIFF .
Aby porównać wygenerowane pliki TIFF, znalazłem GNU tiffcmp (dla Windows część GnuWin32 tiff ) i tiffinfo wykonało dobrą robotę. Użyj tiffcmp -l i policz liczbę wierszy wyniku, aby znaleźć wszelkie różnice. Jeśli jesteś zadowolony z małej ilości zmian w treści (np. Różnice w wygładzaniu), użyj tiffinfo, aby policzyć całkowitą liczbę pikseli, a następnie możesz wygenerować procentową wartość różnicy.
Nawiasem mówiąc, dla każdego, kto robi proste porównanie PDF, gdzie struktura nie uległa zmianie, można użyć diff z wiersza poleceń i zignorować pewne wzorce, np.
Nadal występuje problem polegający na tym, że nie zawsze wychwytuje zmiany w generowanych nazwach czcionek.
źródło
Nasz produkt, PDF Comparator - http://www.premediasystems.com/pdfc.html "- zrobi to całkiem elegancko i wydajnie. Nie jest też darmowy i jest aplikacją tylko dla Mac OS X.
źródło
ImageMagick
, zobacz inne moje odpowiedzi: jedna - dwie - trzy .W zależności od Twoich potrzeb rozwiązanie konwersji na tekst byłoby najłatwiejsze i najbardziej bezpośrednie. Uważam, że pomysł na bitmapę był całkiem fajny.
źródło
Oprogramowanie blubeam pdf zrobi to za Ciebie
źródło
Możesz zbiorczo porównać pliki PDF za pomocą narzędzia Tarkware Pdf Comparer. Ale to nie jest darmowe i wymaga Adobe Acrobat.
źródło