Подтвердить что ты не робот

Инструмент для сравнения большого количества файлов PDF?

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

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

Он должен сравнивать контент, как человек, а не внутреннюю структуру. Я хочу проверить регрессии между различными версиями генератора PDF, которые мы использовали.

4b9b3361

Ответ 1

Потому что нет такого инструмента, который мы написали. Вы можете загрузить i-net PDF файл сравнения и использовать его. Надеюсь, что поможет другим с той же проблемой. Если у вас есть проблемы с ним или у вас есть обратная связь для нас, вы можете обратиться в нашу службу поддержки.

enter image description here

Ответ 2

На самом деле есть инструмент diffpdf.

http://www.qtrac.eu/diffpdf.html

Его слабость заключается в том, что он не реагирует хорошо, когда добавления делают новый перенос текста частично на новую страницу. Например, если старую страницу 4 следует сравнить с концом страницы 5 и началом страницы 6, вам нужно будет сдвинуть параметры для сравнения двух срезов отдельно.

Ответ 3

Я использовал испеченный на дому script, который

  • преобразует все страницы в два PDF файла в растровые изображения.
  • цветные страницы PDF 1 до красно-белых
  • изменяет белый на прозрачный на страницах PDF 2
  • накладывает каждую страницу из PDF 2 поверх соответствующей страницы из PDF 1
  • выполняет преобразование/раскраску и наложение параллельно на несколько ядер

Используемое программное обеспечение:

  • GhostScript для преобразования PDF-to-bitmap
  • ImageMagick для раскраски, прозрачности и наложения
  • inotify для синхронизации параллельных процессов
  • любой просмотрщик изображений с поддержкой PNG для просмотра результата

Плюсы:

  • простая реализация
  • все используемые инструменты - с открытым исходным кодом.
  • отлично подходит для поиска небольших различий в макете

Минусы:

  • медленное преобразование
  • Основные различия между PDF файлами (например, разбиение на страницы) приводят к беспорядку
  • растровые изображения не масштабируются
  • работает только для черно-белого текста и диаграмм
  • нет простого в использовании графического интерфейса пользователя

Я искал инструмент, который будет делать то же самое на уровне PDF/PostScript.

Вот как наш script вызывает утилиты (обратите внимание, что ImageMagick использует GhostScript за кулисами для преобразования PDF- > PNG):

$ convert -density 150x150 -fill red -opaque black +antialias 1.pdf back%02d.png
$ convert -density 150x150 -transparent white +antialias 2.pdf front%02d.png
$ composite front01.png back01.png result01.png # do this for all pairs of images

Ответ 4

Кажется, я не вижу этого здесь, так вот: через superuser: Как сравнить различия между двумя файлами PDF? (ответ # 229891, by @slestak), есть

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

(шаги сборки для Ubuntu Natty можно найти в get-diff-pdf.sh)

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

Ура!

Ответ 5

Мы также использовали pdftotext (см. ответ Sklivvz) для создания ASCII-версий PDF файлов и wdiff, чтобы сравнить их.

Используйте pdftotext -layout, чтобы повысить читаемость и получить представление об изменениях в макете.

Чтобы получить хороший цветной вывод из wdiff, используйте эту оболочку script:

#!/bin/sh
RED=$'\e'"[1;31m"
GREEN=$'\e'"[1;32m"
RESET=$'\e'"[0m"
wdiff -w$RED -x$RESET -y$GREEN -z$RESET -n $1 $2

Ответ 6

Я думаю, что ваш лучший подход состоял бы в том, чтобы преобразовать PDF в изображения с приемлемым разрешением и сравнить изображение.

Для создания изображений из PDF вы можете использовать Adobe PDF Library или решение, предложенное в Лучший способ конвертировать PDF файлы в файлы tiff.

Для сравнения сгенерированных файлов TIFF я нашел GNU tiffcmp (для части окна GnuWin32 tiff) и tiffinfo проделали хорошую работу. Используйте tiffcmp -l и подсчитайте количество строк вывода, чтобы найти какие-либо различия. Если вы довольны небольшим количеством изменений контента (например, сглаживания сглаживания), используйте tiffinfo для подсчета общего количества пикселей, и затем вы можете создать процентное значение разницы.

Кстати, для тех, кто делает простое сравнение PDF, где структура не изменилась, можно использовать diff командной строки и игнорировать некоторые шаблоны, например. с GNU diff 2.7:

diff --brief -I xap: -I xapMM: -I /CreationDate -I /BaseFont -I /ID --binary --text

У этой проблемы все еще есть проблема, что она не всегда улавливает изменения в именах созданных шрифтов.

Ответ 7

Наш продукт, компаратор PDF - http://www.premediasystems.com/pdfc.html" - будет делать это довольно элегантно и эффективно, а также не бесплатно, и это Приложение Mac OS X.

Ответ 8

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

Ответ 9

Программное обеспечение blubeam pdf сделает это за вас

Ответ 10

Вы можете выполнить пакет сравнить файлы pdf с Tarkware Pdf Comparer. Но это не бесплатно и требует Adobe Acrobat.