Мне нужно сравнить большое количество файлов PDF для оптического содержимого. Поскольку файлы PDF были созданы на разных платформах и с разными версиями программного обеспечения, существуют структурные различия. Например:
- фрагменты текста могут быть разными
- порядок записи может быть другим
- положение может отличаться на несколько пикселей
Он должен сравнивать контент, как люди, а не внутреннюю структуру. Я хочу проверить регрессию между разными версиями генератора PDF, который мы использовали.
Ответы:
Потому что нет такого инструмента, который мы написали. Вы можете загрузить средство сравнения содержимого PDF- файлов i-net и использовать его. Я надеюсь, что это поможет другим с той же проблемой. Если у вас возникли проблемы или у вас есть отзыв для нас, вы можете обратиться в нашу службу поддержки.
источник
На самом деле есть инструмент diffpdf.
http://www.qtrac.eu/diffpdf.html
Его слабость в том, что он плохо реагирует, когда при добавлении новый текст частично смещается на новую страницу. Например, если старую страницу 4 нужно сравнить с концом страницы 5 и началом страницы 6, вам потребуется сместить параметры, чтобы сравнить два фрагмента по отдельности.
источник
Я использовал самодельный сценарий, который
Используемое программное обеспечение:
Плюсы:
Минусы:
Я искал инструмент, который делал бы то же самое на уровне PDF / PostScript.
Вот как наш скрипт вызывает утилиты (обратите внимание, что ImageMagick за кулисами использует GhostScript для преобразования PDF-> PNG):
источник
for i in $(seq -w 0 05); do /cygdrive/c/Progra~1/ImageMagick-6.6.9-Q8/composite.exe 1-$i.png 2-$i.png result-$i.png; done
pdfdiff
каталоге и дополнительно печатает номера страниц, которые различаются в двух PDF-файлах.Кажется, я не вижу этого здесь, поэтому вот оно: через суперпользователя: Как сравнить различия между двумя файлами PDF? (ответ №229891, автор @slestak) , есть
https://github.com/vslavik/diff-pdf
(шаги сборки для Ubuntu Natty можно найти в get-diff-pdf.sh )
Насколько я понимаю, он в основном накладывает текст / графику каждой страницы в pdf (-ах), позволяя вам легко увидеть, были ли какие-либо изменения ...
Ура!
источник
Мы также использовали pdftotext (см. Ответ Sklivvz) для создания версий PDF-файлов в формате ASCII и wdiff для их сравнения.
Используйте
-layout
переключатель pdftotext, чтобы улучшить читаемость и получить представление об изменениях в макете.Чтобы получить красивый цветной вывод из wdiff, используйте этот сценарий оболочки:
источник
Я думаю, что ваш лучший подход - преобразовать PDF в изображения с приличным разрешением, а затем сравнить изображения.
Для создания изображений из PDF вы можете использовать Adobe PDF Library или решение, предложенное в Best way для преобразования файлов PDF в файлы TIFF .
Чтобы сравнить сгенерированные файлы TIFF, я нашел GNU tiffcmp (для окон - часть GnuWin32 tiff ), и tiffinfo хорошо поработал. Используйте tiffcmp -l и подсчитайте количество строк вывода, чтобы найти различия. Если вас устраивает небольшое изменение содержимого (например, различия сглаживания), используйте tiffinfo для подсчета общего количества пикселей, и затем вы можете сгенерировать значение процентной разницы.
Кстати, для тех, кто выполняет простое сравнение PDF-файлов, структура которых не изменилась, можно использовать diff из командной строки и игнорировать определенные шаблоны, например, с GNU diff 2.7:
По-прежнему существует проблема, заключающаяся в том, что он не всегда улавливает изменения в сгенерированных именах шрифтов.
источник
Наш продукт, PDF Comparator - http://www.premediasystems.com/pdfc.html "- сделает это довольно элегантно и эффективно. Он также платный и предназначен только для Mac OS X.
источник
ImageMagick
, см. Некоторые из моих других ответов: один - два - три .Исходя из ваших потребностей, преобразование в текст будет самым простым и прямым решением. Я действительно думал, что идея растрового изображения была довольно крутой.
источник
Программа blubeam pdf сделает это за вас
источник
Вы можете сравнивать файлы PDF в пакетном режиме с помощью Tarkware Pdf Comparer. Но это не бесплатно и требует Adobe Acrobat.
источник