Знаете ли вы хороший способ сравнить PDF-файлы бок о бок и показать изменения между ними?
Я ищу программное обеспечение Windows для достижения этой цели. Было бы здорово, если вы можете размещать как бесплатные, так и несвободные продукты.
Знаете ли вы хороший способ сравнить PDF-файлы бок о бок и показать изменения между ними?
Я ищу программное обеспечение Windows для достижения этой цели. Было бы здорово, если вы можете размещать как бесплатные, так и несвободные продукты.
В Linux и Windows вы можете использовать diffpdf
(который отличается от diff-pdf
упомянутого в этой теме).
На Ubuntu установить с помощью:
sudo apt-get install diffpdf
Смотрите далее эту страницу UbuntuGeek о сравнении pds текстуально или визуально.
Для Windows эта версия Diffpdf для Windows работает очень хорошо. Вы можете скачать с http://soft.rubypdf.com/software/diffpdf (прокрутите вниз до статической версии Win32).
Попробуйте WinMerge с плагином xdocdiff . Оба абсолютно бесплатны. Безвоздмездно.
Несколько комментариев ниже предполагают, что они не видят никакой разницы. Это означает, что плагин установлен неправильно. Вот как:
Поместите файлы в файл readme плагина xdocdiff
для их размещения (есть два места; я не буду перечислять их здесь, так как имена файлов могут изменяться и т.д. - прочитайте readme)
В WinMerge перейдите в «Плагины> Список» и установите флажок "Включить плагины" (этот шаг отсутствует в файле readme для xdocdiff
).
В WinMerge выберите "Плагины"> "Автоматическая распаковка" (это было отключено до шага 2)
Затем при сравнении вы увидите, как выглядят текстовые файлы в окнах сравнения.
Я недавно нашел это, и мне это нравится.
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}
Нам также нужно было сравнить PDF-файлы в нашей компании, и мы не были удовлетворены каким-либо из найденных нами решений, поэтому мы сделали свое собственное: i-net PDFC. Это не бесплатно, но мы предлагаем 30-дневную пробную версию.
Он написан на Java, поэтому он кроссплатформенный.
Что делает его особенным, так это то, что он сравнивает содержимое, а не только текст (или просто конвертирует pdf в изображение и сравнивает изображение). У этого также есть хороший визуальный инструмент сравнения.
Вы также можете использовать Adobe Acrobat X. Он имеет встроенную функцию сравнения PDF в «Просмотр -> Сравнить документы».
Я хотел сделать это (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
Пример вывода можно увидеть здесь
Если вы сравниваете текст внутри PDF, то Beyond Compare делает это.
Не бесплатно, но есть 30-дневная пробная версия.
Отличный инструмент и простой в использовании: Compare-It v4 (с http://www.grigsoft.com/)
Сравнивает много разных видов файлов. Он имеет несколько встроенных конвертеров, в том числе один для PDF-файлов.
Я использовал это довольно много раз с удовлетворительными результатами.
На самом деле следует попробовать это. Пробная версия позволяет сравнивать неограниченное время.
Не знаю, но есть также ComparePDF (не бесплатно, но возможна 30-дневная пробная версия): http://www.compare-pdf.com/download.htm
Бесплатно, не самый лучший, но ...
Я открываю оба документа и разделяю их друг на друга.
Не самое практичное решение, но оно работает!
Я не видел хорошего пакета DIFF для PDF-файлов, и, несмотря на то, что он ручной и надоедливый, мой способ работает!
Здесь вы можете загрузить два файла PDF и получить третий, который покажет вам разницу между ними.
Работает на всех платформах, ничего не изучать и не устанавливать и бесплатно.
Для очень примитивной формы синхронизированной прокрутки между двумя файлами 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
Я использовал это (не идеальное, но для меня достаточное) решение:
Еще одно не идеальное решение:
В зависимости от того, насколько сложным является форматирование в PDF-файлах и какие изменения вы ищете, это может быть нормально.
Коммерческий: Вы можете использовать оригинальный Adobe Acrobat Professional, за колоссальные $ 449:
Сравните исправленный PDF с более ранней версией.
Если вы выбираете Acrobat, комментарии на этой странице имеют отношение к его использованию.
pdf-diff - это пакет Python для этой цели.
Diff Doc - не бесплатно.
Существует также бесплатный онлайн https://www.diffchecker.com/diff.
Но он подчеркивает только различия текста без изображений и форматирования. И он слишком слаб в сопоставлении неизмененных фрагментов в больших файлах.