Pull to refresh

Comments 28

Задача , описаная автором, может быть расширена до сравнения одного и того же документа, полученного например сканированием в планшетном сканере и изображения, полученного при помощи камеры,при съёмки из папки судебного дела.

В российском суде часто участники судебного заседания останавливаются для того, чтобы сличить документ с его фотографией. Но ещё чаще судья просто отказывается это делать.

Или например вывешивая судебное дело на сайте, размещаешь постраничные фотографии дела, при этом часто параллельно даёшь ссылку на скан того-же документа полученного на сканере ( или полученного тобой же из файла Word).

Было бы очень полезно, если бы была разработана и продавалась утилита (лучше программа) или в сети действовал on-line сервис, который бы подтверждал, своей электронной подписью степень идентичности фотографии и качественного скана.

Задача , описаненая автором, при этом несколько расширится, но польза вырастит неимоверно.

Стандартное решение — оба документа постранично рендерятся в картинки бесплатным GhostScript, картинки попарно сравниваются бесплатным ImageMagick.
Сравнение картинок гибко настраивается: imagemagick.org/script/compare.php

Можете к этому приделать GUI и коммерциализировать; а мне хватит скрипта на десять строк.

Если в документ будет добавлена, или удалена как у автора теста, строка, то различными будут признаны остаток текущей страницы и все последующие

+1

Примерно так и делал на чертежах проектной документации.

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

Задача сравнения 2-ух PDF в общем своём понимании не решаема в связи с форматом самих PDF файлов, Даже больше, нет уверенности в возможности правильного сравнения и, например, прошедших через FineReader распознование. И, даже больше, «нет» готовых инструментов для сравнения даже файлов в текстовом варианте по причинам и описанным в статье, как простая перенумерация строк рушит весь алгоритм сравнения, хотя как казалось бы какая «мелочь», но разработчики таких программ не мыслят «мелочами» и удобством пользователей создавая свои программы.

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

А, у кого и какие предпочтения и почему при использовании каких программ сравнения текстовых файлов?
Для сравнения текстовых файлов (и не только текстовых) еще можно пользоваться встроенным инструментарием Total Commander.
Да чем угодно, от стандартного со времён MS-DOS fc, до модных онлайн-платформ типа editor.mergely.com
Мне кажется, что PDF — слабо подходящий для сравнения формат. Сравнивать документы в PDF — это почти то же самое, что сравнивать документы в JPG. Для корректного сравнения в конце концов нужно будет производить распознавание документов системой OCR со всеми вытекающими отсюда проблемами и сложностями. Следствие из этого — PDF-документы не очень подходят для (электронного) обмена между пользователями и организациями, лучше использовать документы с выраженной структурой, что-то типа XML (упакованного для экономии трафика), такие документы сравнивать будет легко. В общем, согласен с выводами автора

Несмотря на это, весь мир ежедневно хранит миллионы своих самых важных документов в формате PDF

Нормальные люди PDF используют только для того, что нужно "дать почитать" человеку. Зачастую, это результат экспорта из какого-то другого формата. И вот этот формат в зависимости от задачи должен уметь все, что требуется. Например, в PDF выгружают всякие отчеты, где мастер-данные хранятся в БД, xml или где-то еще.

Это могут быть юридические соглашения или исправления в отчёте, которые, скорее всего, в наши дни будут представлены в формате PDF

Использовать PDF там, где что-то будет редактироваться себе дороже. Это примерно как слать текст картинкой и потом жаловаться, что с ним ничего нельзя сделать.

Уже приходилсь писАть на эту тему на Хабре — формат PDF дает автору документа некоторую иллюзию, что получатель не станет корректировать документ. Корректировать PDF можно, но это требует каких-то усилий, появляется надежда, что получатель эти усилия прилагать не станет

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

PDF идеальный формат для публикации документа, не подразумевающей его последующее редактирование.

Но зато имеющий один существенный недостаток — в таком документе нельзя производить поиск (в общем случае). Для настоящего электронного документооборота его использовать нельзя, и дело не в возможности редактирования

с каких пор в PDF нет поиска?

скачайте даташит https://static.chipdip.ru/lib/059/DOC000059747.pdf и там поиск работает, и перемещение по ссылкам как во вне, так и внутри документа

Поиска (и других функций) не будет, если PDF сделан из картинок

Я же написАл насчет общего случая. При построении документа PDF в общем случае неизвестно, будет ли текст сохранён как текст или как картинка. Файлы PDF стоятся с помощью различных программ и приложений, и результат может быть различным даже для почти одинаково отформатированных документов

Я не совсем уверен, что "общий случай" сильно важен практически. В общем случае нельзя вообще использовать файлы для поиска, всегда может подвернуться jpg или bin. В общем случае может не существовать решения, или в общем случае можно доказать NP-completeness. PDF достаточно удобен на практике, для довольно большого множества задач. Но да, он переусложнен и возможно предоставляет слишком много свободы. Но тут, так сказать, trade-off, иногда эти возможности - killer фича.

Я ничего не имею против формата PDF, но у него есть своя область применения, а у этой области есть свои границы. Действительно, для пересылки файла, который нужно только просматривать или распечатывать, PDF очень удобен и универсален. Но при этом задачи сравнения файлов PDF или их редактирования выглядят совершенно неестественными. Если кому-то нужны поиск текста в документах, сравнение или редактирование документов, то PDF, как и любые форматы картинок и фото (типа JPG, BMP, PNG) не подходит совершенно (хотя и может возникнуть искушение его использовать — ведь в отдельных документах поиск возможен, а программы для редактирования PDF'ов существуют). Если кому-то таки нужен поиск во всех получаемых от партнеров документах, боюсь, что единственный выход — это конвертация PDF в какой-нибудь структурированный формат для документов. Если нужно будет выбирать формат для универсального документооборота (пересылки и хранения документов) — лучше PDF сразу исключить из рассмотрения

Нет большой проблемы. Есть diffpdf в репозиториях Linux. Для Windows бинарное приложение платное (https://www.qtrac.eu/diffpdf.html), но оно open source, можно собрать самому. Но это для обычных текстовых PDF, сравнение текста на сканированных растровых изображениях - совершенно отдельная и более сложная задача.

Между «обычными текстовыми PDF» и «сканированными растровыми изображениями» есть целый спектр вариантов:
  • текстовый слой есть, но последовательность строк в нём отличается от фактически видимой на странице (чаще всего в таблицах и негоризонтальных строках);
  • текстовый слой есть, но в уникальной одноразовой кодировке, включающей только глифы, задействованные в конкретном документе;
  • текстовый слой есть, но редко используемые глифы выводятся не как текст, а как кривые — т.е. удалены из шрифта и заинлайнены в страницу...

Это всё не считая комбинаций из текста-текстом и текста-картинкой.

Рендерить и OCR-ить документы в итоге оказывается проще, чем парсить.

pdftotext certificate_covid.pdf 1.txt

pdftotext certificate_covid.pdf 2.txt

sed -n '46p' 2.txt

>17.04.2021

sed -i '46s/04/08/' 2.txt

diff 1.txt 2.txt 

46c46 < 17.04.2021

17.08.2021

В Abbyy FineReader же сравнение документов уже лет 5 как, в том числе скана с цифровой версией.

Распознать оба PDF в нечто Rtf-подобное, а потом сравнить любым инструментом сравнения RTF (т. е. сравнивающим не только текст, но и форматирование, таблицы итд) или хотя бы Word'ом (инструмент сравнения есть на вкладке Рецензирование) .

У ABBYY есть приложение PDF Comparator (платное), которое поступает описанным выше способом.

Юристы и бухгалтерия у нас пользуют ABBYY Comparator, вполне устраивает. Ценник на лицензию терпимый. Единственная на моей памяти проблема была с подписанным pdf файлом, что то там не получалось у него открыть. В остальном - весьма удобен для сравнения документов, работает через распознавание текста, поэтому удобно с одной стороны скормить ему скан, с другой - оригинал в Word.

Тоже первым делом на ум пришло Abby comparator. Когда заключали договора по переписке, всегда сравнивали утверждённые сканированные pdf с оригиналами и word исходниками. Сначала картинки распознаются, затем тексты сравниваются показывая где и какой абзац добавили/вычеркнули. И инструмент очень качественный и проработанный. Странно что автор не знаком и что представители Abby ещё не здесь

*На правах бреда*

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

Не совсем понятно, что под сравнением должно быть понято. Есть текст, есть, форматы (цвета, шрифты, размер букв, ориентация итд.), графики, таблицы, комментарии, форматирование чусел, видимые и невидимые аттрибуты итд… Если ориентироваться на что-то определённое, то и можно будет «выбрать» стратегию для реализации…
Sign up to leave a comment.