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

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

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

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

Ответы (18)

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

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

On Ubuntu установить с использованием:

sudo apt-get install diffpdf

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

For Windows, эта Diffpdf версия для Windows работает действительно здорово. Вы можете скачать с http://soft.rubypdf.com/software/diffpdf (прокрутите вниз до Win32 статической версии).

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

Попробуйте WinMerge с плагином xdocdiff . Оба совершенно бесплатны. Никаких строк не прилагается.

  • *

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

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

  2. В WinMerge, перейдите в Plugins > List и отметьте галочкой “Enable Plugins” (этот шаг отсутствует в xdocdiff readme)

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

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

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

Я недавно нашел это и мне это нравится. https://github.com/vslavik/diff-pdf

Кросс-платформенный, бесплатный, и работает хорошо.

Вот скриншот diff-pdf в действии - обратите внимание, что текст в PDF не отличается, а только шрифты (и, соответственно, настройки макета):

Звонок, чтобы получить это изображение было:

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

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

Это написано на Java, так что это кроссплатформенность.

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

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

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

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

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

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

  • я установил pdftotext, wdiff, и colordiff, доступные в различных пакетных менеджерах. (С макропортами: 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

Пример вывода можно посмотреть здесь

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

Если вы сравниваете текст внутри pdf, то Beyond Compare делает это.

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

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

Не знаю, но есть еще и сравнительныйPDF (не бесплатный, но возможна 30-дневная пробная версия): http://www.compare-pdf.com/download.htm

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

Здесь вы можете загрузить два pdf’s и получить обратно третий, который покажет вам разницу между ними.

Работает на всех платформах, в них ничего не учится и не устанавливается, и это бесплатно. _COPY15_дифференциация/intro.html

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

Бесплатно, не самое лучшее, но…

Я открываю оба документа, и они разделены экраном друг на друга.

Не самое практичное решение, но оно работает!

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

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

Мое предложение по лучшему инструменту для сравнения PDF-файлов - Kiwi PDF Comparer .

В отличие от большинства, вы можете сравнивать как текст, так и изображения в документе, а также у вас есть еще один вариант для сравнения страниц в пикселях. При сравнении текста он имеет большее разрешение загара, потому что выделяет измененные символы, а не целые слова.

Это также должно быть единственным программным обеспечением, чтобы сделать PDF различий, в котором вам не нужно идти искать отмеченные различия, потому что вы можете перейти от одной разницы к другой только одним щелчком мыши.

Существует бесплатная версия, которая работает очень хорошо, но платная версия также является самой дешевой с разницей между профессиональными приложениями. Будучи написанным на Java можно запускать на Windows, Linux и Mac OS.

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

pdf-diff - это пакет Python для этой цели.

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

Реклама: Вы можете использовать оригинальный Adobe Acrobat Professional, за колоссальные $449 : Сравните пересмотренный PDF-файл с более ранней версией .

Если вы решили использовать Acrobat, комментарии на этой странице относятся к его использованию.

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

Дифф Док - не бесплатно.

0
0
0
2009-09-24 10:04:34 +0000
0
0
0
2013-01-21 13:35:52 +0000

Я использовал это (не идеальное, но для меня достаточно) решение:

  • Преобразование PDF в обычный текст (в моем случае с Adobe Reader, бесплатное приложение)
  • Использование opendiff (входит в XCode, бесплатно) и посмотреть изменения
0
0
0
2019-02-26 10:15:54 +0000

Есть также бесплатный онлайн https://www.diffchecker.com/diff .

Но он выделяет только текстовые различия без изображений и форматирования. И он слишком слаб в сопоставлении неизменных фрагментов в больших файлах.

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

Для очень примитивной формы синхронизированной прокрутки между двумя 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

Похожие вопросы

3
19
10
28
5