PDF "Каноникализация" - PullRequest
       1

PDF "Каноникализация"

0 голосов
/ 03 апреля 2012

Я пишу библиотеку для создания отчетов в формате PDF с использованием отчетов по креветкам.

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

Проблема в том, что два визуально одинаковых PDF-файла могут иметь разные файлы.

Есть ли способ убедиться, что 2 визуально равных PDF имеют одинаковые биты в файле? Что-то вроде канонизации XML.

1 Ответ

3 голосов
/ 03 апреля 2012

'Визуальное равенство' (или визуальное сходство ': где только небольшой процент пикселей различен для каждой страницы) может происходить из 2 разных PDF-файлов, даже если внутренняя структура объектов PDF * очень отличается. (Подумайте о странице «текст», которая может использовать настоящие шрифты или векторную графику «контур» для формы каждого глифа ...)

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

С помощью сценариев способ сделать это с помощью ghostscript, pdftk и ImageMagick Я описал в этом ответе:

Кроме того, вы можете взглянуть на

(доступно для Linux, Unix, Mac OS X и Windows): также можно визуально сравнивать два файла PDF.


[Ваш буквальный вопрос был таким: «Есть ли способ убедиться, что 2 визуально равных PDF имеют одинаковые биты в файле?» - Однако я не уверен, действительно ли вы так и было - значит мой ответ выше. В противном случае я бы сказал: Если два файла PDF визуально равны, просто сгенерируйте их соответствующую сумму MD5, чтобы определить, имеют ли они одинаковые биты в каждом файле ...]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...