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

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

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

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

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

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

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

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

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

Я использовал домашний скрипт, который

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

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

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

Плюсы:

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

Минусы:

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

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

Вот как наш скрипт вызывает утилиты (обратите внимание, что 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 

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

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

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

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

Ура!

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

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

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

 #!/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 

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

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

Чтобы сравнить сгенерированные файлы TIFF, я нашел GNU tiffcmp (для части windows 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 

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

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

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

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

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

  • Модульные тесты против функциональных тестов
  • Как решить ошибку LNK2019: нерешенный внешний символ - функция?
  • Вызов обратных вызовов с помощью Mockito
  • Как заставить Сикули работать в безголовом режиме
  • Как объяснить сортировку (численное, лексикографическое и сопоставление) с примерами для нетехнических тестеров?
  • WebDriver: проверьте, существует ли элемент?
  • Как я могу создавать тесты в Android Studio?
  • Как протестировать mocking источник данных JNDI с помощью Spring?
  • Как определить и переключиться на кадр в веб-seleniumе, когда кадр не имеет идентификатора
  • Переключить вкладки с помощью Selenium WebDriver с Java
  • Единичное тестирование C Код
  • Давайте будем гением компьютера.