Як порівняти відмінності між двома файлами PDF у Windows?


205

Чи знаєте ви хороший спосіб порівняти PDF-файли поряд і показати модифікації між ними?

Я шукаю програмне забезпечення Windows для цього. Було б чудово, якщо ви можете розміщувати як безкоштовні, так і не безкоштовні продукти.



1
Існує БЕЗКОШТОВНА бібліотека для порівняння pdf-пікселів за пікселями. Перевірте цей блог: testautomationguru.com/…
Vinoth S

Відповіді:


109

Спробуйте WinMerge за допомогою плагіна xdocdiff . Обидва повністю безкоштовні. Безкорисно; без зворотніх зобов'язань.


Кілька коментарів нижче припускають, що вони не бачать різниці. Це означає, що плагін не встановлений правильно. Ось як:

  1. Покладіть файли, куди xdocdiffйде файл readme у плагіні, щоб розмістити їх (є два місця; я не перелічу їх тут, оскільки назви файлів можуть змінюватися тощо. - читайте readme)

  2. У WinMerge перейдіть до Плагіни> Список і поставте галочку "Увімкнути плагіни" (цей крок відсутній у xdocdiffreadme)

  3. У WinMerge виберіть Плагіни> Автоматичне розпакування (це було відключено до кроку 2)

Тоді при порівнянні ви побачите, як виглядають текстові файли у вікнах порівняння.


Спробував це, але не побачив різниці, коли не використовував плагін xdocdiff. Чи є можливість вибрати в інтерфейсі WinMerge?
Умбер Ферруле

1
Яка мета перегляду двійкового тексту у форматі PDF? Я очікував побачити візуальні відмінності, зроблені i-net PDFC .
JJD

Чи був якийсь спосіб зробити цей обрив стовпців ручки? Без нього одна зміна каскадів на кілька.
Стюарт

1
Plugins > List and tick the "Enable Plugins" checkboxбуло те, чого мені не вистачало!
Seph

У текстових версіях PDF-файлів, що відображаються у вікнах WinMerge, відсутнє багато символів
cja

168

У Linux та Windows можна використовувати diffpdf(що відрізняється від diff-pdfзазначеного в цій темі).

введіть тут опис зображення

При встановленні Ubuntu за допомогою:

sudo apt-get install diffpdf

Далі див. Цю сторінку UbuntuGeek про порівняння файлів тексту в текстовому та візуальному плані .

Для Windows ця версія Diffpdf для Windows працює дуже добре. Ви можете завантажити з http://soft.rubypdf.com/software/diffpdf (прокрутіть униз до статичної версії Win32 ).


12
Власна назва - DiffPDF (як видно на скріншоті), і вона заснована на Qt 4 та бібліотеці Poppler, таким чином вона є портативною. Див. Домашню сторінку DiffPDF : qtrac.eu/diffpdf.html . Інформація про збірку Windows знаходиться тут: soft.rubypdf.com/software/diffpdf . І ваша інструкція з установки працює і на Debian.
przemoc

3
На домашній сторінці DiffPDF тепер також є посилання для встановлення Linux, Windows та Mac DMG ( qtrac.eu/diffpdf.html ).
studgeek

6
На мою думку, DiffPDF - це найсучасніший інструмент, представлений тут. Він не тільки пропонує приємне графічне порівняння, але відслідковує зміни більш розумно, ніж інші, наприклад xdocdiff для WinMerge. Однак у неї є одна серйозна проблема: вона обмежує порівняння сторінок. Це означає, що якщо у вас є текст на сторінці 2 документа А, але цей текст переміщується на сторінку 3 у документі B, тоді інструмент вважає, що його було внесено в A та додано у B.
caw

7
Старіші безкоштовні версії можна знайти тут
Shafik Yaghmour

3
Я спробував використати це для роману, який я експортую в PDF. На жаль, інструмент втратив трек приблизно через 10 сторінок і вважав все "різним", навіть якщо великі уривки були абсолютно однаковими.
Ерік Дж.

42

Нещодавно я знайшов це і мені подобається.

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

Перехресна платформа, безкоштовна і працює добре.

Ось знімок екрана diff-pdfв дії - зауважте, що текст не відрізняється у форматі PDF, а лише шрифтами (і відповідно налаштуваннями макета):

diff-pdf.png

Заклик отримати це зображення:

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

 

... де testA.pdf / testB.pdf отримуються шляхом компіляції цього простого файлу Latex pdflatex(відповідно до кожного pdf, див. коментар):

\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
Ще одне зауваження про diff-pdf: DiffPDF чудово підходить для швидкого візуального порівняльного зміни зміненого тексту, але практично неможливо налагоджувати такі речі, як, скажімо, невеликі зміни в інтервалі між рядками - diff-pdfз іншого боку, в основному розміщує вміст сторінки з обох порівняних файлів на одній сторінці (але з різним кольором) - тому проблеми з інтервалом між рядками можна легко визначити ... Привіт!
sdaau

Це чудово! Чи все-таки слід відстежувати хід великих файлів під час виведення у файл PDF (не використовуючи параметр --view)? Додатковий варіант / v, здається, нічого не робить. Крім того, коли ви запускаєте команду для генерації PDF порівняння, вона запускається в окремому процесі, тому вона не призупиняє командний рядок, як це зазвичай відбувається, коли ви виконуєте щось із підказки.
ЛукаS

Це те, що мені було потрібно. Я порівнюю PDF-звіти про числові страти, тому шукаю відмінності в одній цифрі на цілій сторінці. Проблема в тому, що я не можу визначити блакитних символів, але знаючи, де різниця, достатньо, щоб знайти її в оригінальних звітах.
manuelvigarcia

22

Нам також потрібно було порівняти PDF-файли в нашій компанії, і ми не були задоволені жодним із знайдених нами рішень, тому ми зробили своє: i-net PDFC . Це не безкоштовно, але ми пропонуємо 30-денну пробну версію.

Це написано на Java, тому це крос-платформне.

скріншот

Особливим є те, що він порівнює вміст, а не лише текст (або просто перетворює pdf у зображення та порівнює зображення). Він також має приємний візуальний інструмент порівняння.


1
Приємний шматочок програмного забезпечення.
Умбер Ферруле

Я не міг змусити це працювати. Завантажили два файли і натиснули на кнопку порівняння, і нічого не станеться.
Крейг Фішер

1
Правильно обробляє різниці сторінок. Має функцію експорту / друку. Різні профілі порівняння (включаючи власні). Наведіть курсор миші на детальніше про те, що змінилося. Виглядає здорово. Недоліки - пробна версія / вартість і не справляється з ходами. Безумовно, що перевершує інструменти, які вищий голосував ІМО.
Джонатан Гаврич

@JonathanGawrych дякую за добрі слова! Що саме ви маєте на увазі під "ходами"? Можливо, ми могли б додати цю функціональність ...
Епага

@Epaga Якщо фрагмент тексту переміщується з однієї сторінки на іншу, він відображається як видалення та додавання. Наприклад, порівняйте пропозиції c ++ N4663 та N4680 . Перегляньте сторінку 19, приклад переміщено з пункту 11 до 8, однак це трактується як додавання / видалення. Щоб побачити фактичні відмінності, потрібно було б вручну виявити щось переміщене, а потім скопіювати приклад на інший інструмент diff, щоб побачити, що речі були додані до прикладу (unhandled_exception, return_void тощо)
Джонатан Гаврич

12

Ви також можете скористатися Adobe Acrobat X. Її вбудована функція порівняння PDF у розділі "Переглянути -> Порівняти документи".


1
Acrobat чи Acrobat Reader? У програмного забезпечення Reader цього немає
Jason S

4
AcrobatX Pro - єдина версія, яка має цю функцію. "Просто звичайний AcrobatX" цього не робить.
Карл Віттофт

2
В Acrobat 9 Pro це знаходиться в меню Документ.
svinto


10

Нещодавно я хотів це зробити (відмінний PDF):

  • ігноруйте пробіли, розриви рядків, розриви сторінок тощо.
  • легко побачити, коли змінилося лише пару слів, а не лише цілі рядки / абзаци.
  • кольоровий різний вихід

Я встановив pdftotext, wdiff та colordiff, доступний у різних менеджерів пакетів. (З MacPorts: sudo port install poppler wdiff colordiff)

Тоді:

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

Тепер я бачу, які слова, красиво забарвлені, змінилися.

Детальніше: http://philfreo.com/blog/how-to-view-a-color-diff-of-text-from-two-pdfs/

Варіація:

Використання dwdiffможе дати трохи кращі результати.

Я також хотів вивести HTML, тому цей крихітний сценарій робить основну веб-сторінку з трохи CSS.

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

Потім відкрийте q.htmlвеб-браузер.

pc-script.bash файл:

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

Приклад результату можна побачити тут

введіть тут опис зображення


@philcolbourn Google+ закривається, можливо, поділіться скріншотом через imgur?
myrdd

fwiw, я натрапив на це крихітне репо: github.com/tpltnt/cli-diffpdf/blob/master/cli-diffpdf.sh
myrdd

Якщо ви використовуєте Windows, Mac, Fedora, openSUSE або ви здатні компілювати бінарні файли з джерела для вашої системи, diff-pdf - це краще рішення, яке виконує це без необхідності встановлення трьох різних залежностей. Не плутати з diffpdf, згаданим в іншій відповіді, яка функціонує лише через GUI.
Хашим

Зауважте, що pc-script.bashскрипт не уникає символів для HTML.
Федеріко

7

Якщо ви порівнюєте текст всередині pdf, це робить Beyond Compare .

Не безкоштовний, але є тридцятиденний випробування.


Так, New > Text Compareмені допомогли побачити основні відмінності в тексті між двома файлами PDF.
Райан

6

Прекрасний інструмент і простий у використанні: Порівняйте-It v4 (від http://www.grigsoft.com/ )

Порівняє багато файлів різного роду. У ньому є кілька вбудованих перетворювачів, в тому числі один для PDF-файлів.

Я використовував його досить багато разів із задовольняючими результатами.

Дійсно слід спробувати це. Пробна версія дозволяє порівняти необмежений час.


1
Це було найкращим і найпростішим для мене. Дякую!
Ankur Jain

Найпростіший і простий інструмент, який я знайшов для використання. Я б хотів, щоб я міг підтримати це не раз!
Чад

Для PDF порівняння здається текстовим. Останній реліз у 2010 році. Ви можете заплатити за це, але впевнені, яка різниця - я не бачив обмежень?
Zitrax


1

Безкоштовно, не найкраще, але ...

Я відкриваю обидва документи і даю їм розділити екран один проти одного.

Не найпрактичніше рішення, але воно працює!

Я не бачив хорошого пакету DIFF для файлів PDF, і в той час як керівництво і дратує, мій шлях працює!


Гум ... не зовсім те, що я шукав, але дякую.
Нельсон Рейс

Вибачте, я знаю не гарну відповідь, але просто кажу, що ніколи не знайшов хорошого інструменту для файлів PDF.
Вільям Гілсум

3
схрестіть очі, щоб дві копії перекривались, і будь-які відмінності виявляться мерехтливими. : D
ендоліт

Оптимізована версія цього методу: відкрийте обидва PDF-файли у повноекранному пристрої зчитування акробатів за допомогою CTRL + L, потім використовуйте CTRL + F6 для перемикання між файлами PDF, все, що рухається, відрізняється ...
Бернар Вандер, Бекен


0

Ще одне менш ідеальне рішення:

  1. Перетворіть обидва PDF-файли в документи Microsoft Word, використовуючи один із веб-сайтів, які роблять це безкоштовно .
  2. Використовуйте функцію порівняння документів у Word.

Залежно від того, наскільки складне форматування в PDF-файлах та тип змін, які ви шукаєте, це може бути добре.


У цьому випадку це буде важко, оскільки існує багато документів PDF і модифікації трапляються дуже часто. Але дякую за пропозицію.
Нельсон Рейс

Також не відмінно підходить для виходу LaTeX - я не знайшов жодного з цих перетворювачів, які б правильно обробляли лігатури тощо.
Кріс Х

0

Комерційний: Ви можете використовувати оригінальний Adobe Acrobat Professional за цінні 449 доларів США:
Порівняйте переглянутий PDF з попередньою версією .

Якщо ви вирішили скористатися Acrobat, коментарі на цій сторінці стосуються її використання.


"за колосальні $ 449" ... і скільки МБ дискового простору?
Х'ю Аллен

3
@Hugh Allen: Пекло багато місця на диску та кілька десятків тисяч записів у реєстрі. Справжнє програмне забезпечення.
harrymc

Оновлена ​​довідкова стаття для Adobe Acrobat XI: adobe.com/uk/products/acrobat/file-compare-two-pdf-files.html
Squig



0

Для дуже примітивної форми синхронізованої прокрутки між двома файлами pdf ви можете використовувати наступний сценарій автоматичної клавіші, який я написав. Це передбачає, що у вас відкриті два вікна SumatraPDF. Натисніть праворуч, щоб перейти до наступної сторінки в обох вікнах, натисніть ліворуч для попередньої сторінки.

#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

Я використав це (не ідеальне, але для мене достатнє) рішення:

  • Перетворення PDF у звичайний текст (у моєму випадку з Adobe Reader, безкоштовна програма)
  • Використовуйте opendiff (додається до XCode, безкоштовно) та перегляньте зміни


0

Також є безкоштовна онлайн https://www.diffchecker.com/diff .

Але він виділяє лише текстові відмінності без зображень та форматування. І він занадто слабкий, щоб відповідати незмінним фрагментам у великих файлах.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.