Инструмент для сравнения большого количества файлов PDF?
Мне нужно сравнить большое количество PDF файлов для этого оптического контента. Поскольку файлы PDF были созданы на разных платформах и с разными версиями программного обеспечения, существуют структурные различия. Например:
- фрагмент текста может быть другим.
- порядок записи может быть различным
- позиция может отличаться от нескольких пикселей.
Он должен сравнивать контент, как человек, а не внутреннюю структуру. Я хочу проверить регрессии между различными версиями генератора PDF, которые мы использовали.
Ответы
Ответ 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.