Как сравнить различия между двумя PDF-файлами в Windows?


205

Знаете ли вы хороший способ сравнить PDF-файлы бок о бок и показать изменения между ними?

Я ищу программное обеспечение Windows для этого. Было бы здорово, если вы можете размещать как бесплатные, так и несвободные продукты.



1
Есть БЕСПЛАТНАЯ библиотека для сравнения pdf пиксель за пикселем. Проверьте этот блог: testautomationguru.com/...
Vinoth S

Ответы:


109

Попробуйте WinMerge с плагином xdocdiff . Оба абсолютно бесплатны. Безвоздмездно.


Несколько комментариев ниже предполагают, что они не видят никакой разницы. Это означает, что плагин установлен неправильно. Вот как:

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

  2. В WinMerge перейдите в «Плагины»> «Список» и установите флажок «Включить плагины» (этот шаг отсутствует в xdocdiffфайле readme).

  3. В WinMerge выберите «Плагины»> «Автоматическая распаковка» (это было отключено до шага 2)

Затем при сравнении вы увидите, как выглядят текстовые файлы в окнах сравнения.


Попробовал это, но не увидел никакой разницы, когда не использовал плагин xdocdiff. Есть ли возможность выбрать в пользовательском интерфейсе WinMerge?
Umber Ferrule

1
Какова цель просмотра двоичного текста в PDF? Я ожидал увидеть визуальные отличия от i-net PDFC .
JJD

Был ли способ сделать эту ручку разрывов столбцов? Без этого одна смена переходит в несколько.
Стюарт

1
Plugins > List and tick the "Enable Plugins" checkboxбыло то, что мне не хватало!
Seph

Многие символы отсутствуют в текстовых версиях PDF-файлов, показанных в окнах
различий WinMerge

168

На Linux и Windows вы можете использовать diffpdf(что отличается от diff-pdfупомянутого в этой теме).

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

На Ubuntu установить с помощью:

sudo apt-get install diffpdf

Смотрите далее эту страницу UbuntuGeek о сравнении pds текстуально или визуально .

Для 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 документа A, но этот текст перемещается на страницу 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 получают путем компиляции этого простого латексного файла с 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с другой стороны, в основном помещает содержимое страницы из обоих сравниваемых файлов на одной странице (но с другим цветом) - так что проблемы с межстрочным интервалом могут быть легко определены ... Ура!
Сдау

Это здорово! Есть ли способ отслеживать прогресс при работе с большими файлами при выводе в файл PDF (без использования параметра --view)? Подробная опция / v, похоже, ничего не делает. Кроме того, когда вы запускаете команду для создания PDF для сравнения, она запускается в отдельном процессе, поэтому она не приостанавливает командную строку, как обычно происходит, когда вы выполняете что-либо из этой подсказки.
LukeS

Это то, что мне было нужно. Я сравниваю отчеты в формате PDF о числовых казнях, поэтому я ищу различия в одной цифре на целой странице. Проблема в том, что я не могу определить голубые символы, но, зная, в чем разница, достаточно найти ее в исходных отчетах.
Мануэльвигарсия

22

Нам также нужно было сравнить PDF-файлы в нашей компании, и мы не были удовлетворены каким-либо из найденных нами решений, поэтому мы сделали свое собственное: i-net PDFC . Это не бесплатно, но мы предлагаем 30-дневную пробную версию.

Он написан на Java, поэтому он кроссплатформенный.

Скриншот

Что делает его особенным, так это то, что он сравнивает содержимое, а не только текст (или просто конвертирует pdf в изображение и сравнивает изображение). У этого также есть хороший визуальный инструмент сравнения.


1
Хорошая часть программного обеспечения.
Umber Ferrule

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

1
Правильно обрабатывает различия между страницами. Имеет функции экспорта / печати. Различные профили сравнения (в том числе кастомные). Наведите курсор мыши, чтобы узнать больше о том, что изменилось. Выглядит отлично. Недостатками являются проба / стоимость и они не справляются с ходами. Определенно превосходит инструменты с более высоким рейтингом IMO.
Джонатан Гаврич

@JonathanGawrych спасибо за добрые слова! Что именно вы подразумеваете под "ходами"? Может быть, мы могли бы добавить эту функциональность ...
Epaga

@Epaga Если часть текста перемещается с одной страницы на другую, она отображается как удаление и дополнение. Например, сравните предложения C4 N4663 и N4680 . См. Стр. 19, пример перенесен из пункта 11 в 8, однако он рассматривается как добавление / удаление. Чтобы увидеть реальные различия, нужно было бы вручную обнаружить что-то перемещенное, а затем скопировать пример в другой инструмент сравнения, чтобы увидеть, что вещи были добавлены в пример (unhandled_exception, return_void и т. Д.)
Джонатан Гаврич

12

Вы также можете использовать Adobe Acrobat X. Он имеет встроенную функцию сравнения PDF в «Просмотр -> Сравнить документы».


1
Акробат или Акробат Ридер? программное обеспечение Reader не имеет этого
Jason S

4
AcrobatX Pro - единственная версия, которая имеет эту функцию. «Просто обычный AcrobatX» не делает.
Карл Виттофт,

2
В Acrobat 9 Pro он находится в меню «Документ».
Свинто


10

Я хотел сделать это (diff PDFs) недавно с этими требованиями:

  • игнорировать пробелы, разрывы строк, разрывы страниц и т. д.
  • легко увидеть, когда изменилась пара слов, а не только целые строки / абзацы.
  • цветопередача

Я установил 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?
Мирдд

я наткнулся на это крошечное репо: 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 делает это.

Не бесплатно, но есть 30-дневная пробная версия.


Да, New > Text Compareпомог мне увидеть основные различия в тексте между двумя файлами PDF.
Райан

6

Отличный инструмент и простой в использовании: Compare-It v4 (с http://www.grigsoft.com/ )

Сравнивает много разных видов файлов. Он имеет несколько встроенных конвертеров, в том числе один для PDF-файлов.

Я использовал это довольно много раз с удовлетворительными результатами.

На самом деле следует попробовать это. Пробная версия позволяет сравнивать неограниченное время.


1
Это было лучшим и самым легким для меня. Спасибо!
Анкур Джейн

Самый простой и самый простой инструмент, который я нашел для использования. Хотел бы я поднять это не раз!
Чад

Для PDF сравнение кажется текстовым. Последний выпуск в 2010 году. Вы можете заплатить за это, но уверены, в чем разница - я не видел никаких ограничений?
Цитракс


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 вы можете использовать следующий скрипт autohotkey, который я написал. Предполагается, что у вас открыто два окна 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.