При настройке распознавания скан-копий и документов в конфигурации «1С:Документооборот» используется связка внешних утилит. Для обработки текстовых файлов в формате JPEG/PNG платформа может обращаться к модулям распознавания напрямую, но для работы с PDF-документами требуется предварительная конвертация страниц в растровые изображения. Для этой цели традиционно применяется программа ImageMagick.
Однако при переходе на 7-ю версию ImageMagick (например, ImageMagick-7.0.7-Q16) пользователи часто сталкиваются со следующими проблемами: отсутствует необходимый исполняемый файл convert.exe или система выдает ошибку «Не удалось распознать картинку. Возможно она не содержит текста для распознавания» при попытке распознать PDF. Разберем по шагам, почему возникают эти сбои и как правильно настроить окружение.
Проанализируем особенности установки ImageMagick. В 7-й версии архитектура утилиты изменилась: основным исполняемым файлом стал magick.exe, а привычная утилита convert.exe по умолчанию не создается в каталоге программы. Конфигурация «1С:Документооборот» в настройках работы с файлами по умолчанию запрашивает путь именно к convert.exe.
Чтобы решить эту проблему при инсталляции программы, выполним следующие действия:
C:\Program Files\ImageMagick-7.0.7-Q16\) появится файл convert.exe.convert.exe.Если после указания пути к convert.exe обычные файлы формата JPEG распознаются успешно, а документы PDF продолжают выдавать ошибку, выясним причину такого поведения. Сам по себе ImageMagick не умеет напрямую декодировать векторный формат PDF. Для растеризации страниц PDF-документов ImageMagick вызывает сторонний интерпретатор — Ghostscript.
Если Ghostscript не установлен на сервере или рабочем столе, процесс конвертации PDF прерывается с ошибкой, и 1С получает пустой результат. Для исправления ситуации выполним следующие шаги:
bin установленного Ghostscript прописан в системной переменной окружения PATH.Начиная с некоторых выпусков ImageMagick (включая версию 7), в дистрибутив включены жесткие правила безопасности, запрещающие обработку файлов формата PDF из-за уязвимостей в интерпретаторах.
Проверим файл конфигурации безопасности:
policy.xml.<policy domain="coder" rights="none" pattern="PDF" />
rights="none" блокирует любые операции с PDF. Изменим его на разрешение чтения и записи:
<policy domain="coder" rights="read|write" pattern="PDF" />
policy.xml.В клиент-серверном режиме процедура распознавания текста выполняется в фоновом задании на стороне сервера. Задание запускается от имени системной учетной записи (например, usr1cv8).
Проверим права доступа:
%TEMP%), куда 1С сохраняет промежуточные графические файлы перед отправкой в модуль распознавания CuneiForm или Tesseract.После выполнения описанных настроек цепочка конвертации PDF в растровое изображение и последующего распознавания текста в «1С:Документооборот» будет работать корректно.