1

У меня есть куча файлов PDF, которые представляют собой статьи, загруженные с различных веб-сайтов журнала. Проблема в том, что некоторые из этих файлов PDF являются дубликатами друг друга. Тем не менее, если я запусту базовый поиск дубликатов файлов, они не будут отображаться, потому что журналы имеют (несколько раздражающую) привычку помещать титульную страницу в PDF-файл перед фактической статьей. Другими словами, если у меня есть две копии статьи "X" автора Y, одна из которых загружена с сайта A, а другая с сайта B, они не являются точными дубликатами, поскольку у одной есть титульная страница от A, а у другой - (другая) обложка. страница из B. Так что мой вопрос:

Можно ли проверить, являются ли два файла PDF дубликатами, игнорируя первую страницу?

Конечно, это не решает всех моих проблем, так как на некоторых сайтах журналов нет обложки! Таким образом, самый лучший вопрос будет:

Можно ли проверить, являются ли два файла PDF дубликатами, где один (или оба) могут иметь титульную страницу?

3 ответа3

1

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

Даже если вы удалили титульный лист из всех статей с чем-то вроде PDFTK, я очень сомневаюсь, что PDF-файлы будут одинаковыми при бинарном сравнении.

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

1

В соответствии со спецификацией PDF могут быть некоторые вещи, которые могут вам помочь.

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

Из спецификации PDF, указанной выше, раздел 14.4:

Идентификаторы файла должны определяться необязательной записью идентификатора в словаре трейлера файла PDF (см. 7.5.5, «Трейлер файла»). Запись идентификатора необязательна, но ее следует использовать. Значение th is entry должно быть массивом двухбайтовых строк. Первая байтовая строка должна быть постоянным идентификатором, основанным на содержимом файла в момент его создания, и не должна изменяться при постепенном обновлении файла.

Во-вторых, вы можете взглянуть на 7.5.6 Рисунок 3. Согласно этой фигуре у вас должно быть оригинальное тело.

Для первого варианта есть функция Poppler для извлечения идентификаторов (вы заинтересованы в постоянных один) http://people.freedesktop.org/~aacid/docs/qt5/classPoppler_1_1Document.html#a2561d28a219676acff2036e5a3bacc83 , однако я не сейчас как вы могли бы удалить исходное тело, чтобы сравнить эти хеши.

-1

Единственное программное обеспечение, которое я нахожу полезным для решения этой проблемы, - Devonthink (я предполагаю, что вы используете Mac). Но вам нужно удалить первую страницу из одного варианта. Вы можете легко отфильтровать их с помощью титульной страницы, вставив уникальную фразу в поиск Finder. Отметьте их или сгруппируйте и запустите скрипт для удаления первой страницы. Когда вы проиндексируете их все, Devonthink выберет дубликаты. Другие повторяющиеся искатели, такие как Близнецы, Dupe Guru (кстати, лучше, чем Близнецы) и другие полагаются на некоторые простые критерии для сравнения. Они не сравнивают содержание. Devonthink действительно сравнивает содержание. И, насколько я могу судить, это на 100% точно.

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