Сохранение вывода из командной строки DiffPDF / ComparePDF. - Сравнение папок PDF

Мы должны сравнить около 1500 PDF-файлов в одной папке с 1500 PDF-файлами в другой, чтобы проверить визуальные различия. Мы нашли DiffPDF(и версию командной строки ComparePDF) для Windows, которая намного быстрее, чем наши автоматические сравнения Acrobat Pro.

До сих пор я использовал:

comparepdf -v=2 =c=a old.pdf new.pdf

но проблема в том, что он просто возвращает "эти файлы разные". Кто-нибудь знает какой-либо способ сохранить вывод из командной строки? Вы можете сделать это из графического интерфейса, но это будет означать использование чего-то вроде TestCOmplete для автоматизации:(

Или есть более эффективные способы визуального сравнения двух PDF с выводом / выделением /

Бонусные баллы для библиотек C# .net.

2 ответа

Решение

Вы могли бы взглянуть на эти ответы на похожие вопросы:

Однако я понятия не имею, будет ли какой-либо из них работать быстрее, чем то, что делает ваше автоматическое сравнение Acrobat Pro... Дайте мне знать, если вы узнали, не так ли?

Клавиши быстрого доступа:

Для простоты, давайте предположим, что ваши входные файлы для сравнения достаточно похожи, и каждый из них занимает всего 1 страницу. (Для многостраничного ввода разверните основную идею этого ответа...)

Вот две наиболее важные команды, к которым относится такое сравнение:

compare.exe ^
    %input1% ^
    %input2% ^
    -compose src ^
    %output%.tmp.pdf

а также

pdftk.exe ^
    %output%.tmp.pdf ^
    background %input1% ^
    output %output%.pdf
  • Первая команда генерирует PDF со всеми дифференциальными пикселями, окрашенными в красный цвет. (Здесь используется разрешение по умолчанию, 72 dpi. Для более детального просмотра различий пикселей добавьте -density 200 (это будет означать: 200 точек на дюйм) или выше, но соответственно увеличится время обработки и дисковое пространство, необходимое для вывода...)
  • Вторая команда пытается объединить полученный PDF с фоном, взятым из ${input1}.

При желании вы можете добавить -verbose -debug coder после compare Команда для лучшего представления о том, что происходит.

compare.exe это инструмент командной строки из замечательного семейства утилит ImageMagick (доступно для Linux, Windows, Unix и MacOSX). Но это требует установки Ghostscript для использования в качестве "делегата", чтобы иметь возможность обрабатывать ввод PDF. pdftk.exe также утилита командной строки, доступная для тех же платформ. Обе бесплатные программы.

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

После второй команды вы получите вывод со всеми красными 'diff' пикселями в контексте первого входного PDF.

Пример вывода:

Вот скриншоты двух одностраничных PDF-файлов с различиями в их содержании:

Пример PDF-файла 1Пример PDF-файла 2


Вот скриншоты вывода, созданного двумя командами выше:

  • Левый показывает промежуточный результат (после первой команды), только разностные пиксели отображаются красным цветом (идентичные пиксели белого цвета).
  • На скриншоте справа показаны красные разностные пиксели, но на этот раз с входным файлом PDF № 1 в виде (серого) фона (после второй команды).

Только красные разностные пиксели; идентичные пиксели белого цветаКрасные разностные пиксели с PDF-файлом 1 в качестве фона


(Входные файлы PDF любезно предоставлены Марком Саммерфилдом, автором прекрасного инструмента DiffPDF.)

У меня была та же проблема, diffpdf быстрый и приятный, но только с графическим интерфейсом. [comparepdf] является консольным, но сообщает только код выхода (без самой разницы). [diff-pdf] имеет как режим консоли, так и вывод diff.pdf, но он медленный и вывод не дружественный.

Я попытался добавить необходимый код в diffpdf, вы можете найти его здесь: http://github.com/taurus-forever/diffpdf-console

Другие вопросы по тегам