1

У меня есть два PDF - файлы , которые выглядят одинаково при просмотре или печати, которые diff говорит являются бинарными и отличаются. Как я могу узнать, в чем различия?

Я предпочитаю ответ, который будет работать на Mac OS X или OpenSUSE.

2 ответа2

0

Для начала я бы попробовал strings в этих файлах и направил их через grep "rdf" чтобы посмотреть, что получится.

strings x.pdf | grep "rdf"
0

В оболочках, которые поддерживают Process Substutition (см. Q317819), diff может быть предоставлен вывод любой команды, которая генерирует текстовое представление - например, exiftool:

diff -u <(exiftool -a -v one.pdf) <(exiftool -a -v two.pdf)

Предложение Стефана о strings также генерирует текстовое представление и может использоваться таким же образом:

diff -u <(strings one.pdf) <(strings two.pdf)

Выходные данные из exiftool или strings относительно читабельны, но не представляют весь файл. exiftool показывает только метаданные, а strings только фрагменты, которые составляют 4 или более байтов действительного текста ASCII; различия, которые не распознаются как метаданные или как строки ASCII, не будут найдены. Нечитаемое, но полное текстовое представление может быть сделано с помощью od:

diff -u <(od -vcw one.pdf) <(od -vcw two.pdf)

(Если od не доступно, еще менее читаемый , но до сих пор полный текст представление может быть сделано с hexdump или hexcat в MacPorts, реализация GNU из od моей быть установлена как god Не все реализации поддерживают одинаковые параметры.)

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .