Как настроить ImageMagick 7 в «1С:Документооборот» для распознавания текста в PDF-файлах?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

При настройке распознавания скан-копий и документов в конфигурации «1С:Документооборот» используется связка внешних утилит. Для обработки текстовых файлов в формате JPEG/PNG платформа может обращаться к модулям распознавания напрямую, но для работы с PDF-документами требуется предварительная конвертация страниц в растровые изображения. Для этой цели традиционно применяется программа ImageMagick.

Однако при переходе на 7-ю версию ImageMagick (например, ImageMagick-7.0.7-Q16) пользователи часто сталкиваются со следующими проблемами: отсутствует необходимый исполняемый файл convert.exe или система выдает ошибку «Не удалось распознать картинку. Возможно она не содержит текста для распознавания» при попытке распознать PDF. Разберем по шагам, почему возникают эти сбои и как правильно настроить окружение.

Причина 1: Отсутствие файла convert.exe в ImageMagick 7

Проанализируем особенности установки ImageMagick. В 7-й версии архитектура утилиты изменилась: основным исполняемым файлом стал magick.exe, а привычная утилита convert.exe по умолчанию не создается в каталоге программы. Конфигурация «1С:Документооборот» в настройках работы с файлами по умолчанию запрашивает путь именно к convert.exe.

Чтобы решить эту проблему при инсталляции программы, выполним следующие действия:

  1. Запустим установочный файл ImageMagick 7 версии.
  2. На этапе выбора дополнительных параметров (Select Additional Tasks) обратим особое внимание на флаги установки.
  3. Обязательно установим галочку напротив пункта «Install legacy utilities (e.g. convert)».
  4. Завершим установку. В каталоге программы (например, C:\Program Files\ImageMagick-7.0.7-Q16\) появится файл convert.exe.
  5. В «1С:Документообороте» в настройках распознавания укажем полный путь к новому файлу convert.exe.

Причина 2: Отсутствие интерпретатора Ghostscript

Если после указания пути к convert.exe обычные файлы формата JPEG распознаются успешно, а документы PDF продолжают выдавать ошибку, выясним причину такого поведения. Сам по себе ImageMagick не умеет напрямую декодировать векторный формат PDF. Для растеризации страниц PDF-документов ImageMagick вызывает сторонний интерпретатор — Ghostscript.

Если Ghostscript не установлен на сервере или рабочем столе, процесс конвертации PDF прерывается с ошибкой, и 1С получает пустой результат. Для исправления ситуации выполним следующие шаги:

  1. Скачаем и установим Ghostscript (AGPL release) с официального сайта.
  2. Важно: разрядность Ghostscript должна совпадать с разрядностью ImageMagick и платформы «1С:Предприятие» (32-bit или 64-bit).
  3. После установки убедимся, что путь к каталогу bin установленного Ghostscript прописан в системной переменной окружения PATH.
  4. Перезапустим службу сервера «1С:Предприятие», чтобы обновленные переменные окружения вступили в силу.

Причина 3: Блокировка формата PDF в политиках безопасности ImageMagick

Начиная с некоторых выпусков ImageMagick (включая версию 7), в дистрибутив включены жесткие правила безопасности, запрещающие обработку файлов формата PDF из-за уязвимостей в интерпретаторах.

Проверим файл конфигурации безопасности:

  1. Перейдем в каталог установки ImageMagick или в папку конфигурации и найдем файл policy.xml.
  2. Откроем файл в текстовом редакторе и найдем строку вида:

    <policy domain="coder" rights="none" pattern="PDF" />

  3. Значение rights="none" блокирует любые операции с PDF. Изменим его на разрешение чтения и записи:

    <policy domain="coder" rights="read|write" pattern="PDF" />

  4. Сохраним изменения в файле policy.xml.

Причина 4: Права доступа службы сервера 1С

В клиент-серверном режиме процедура распознавания текста выполняется в фоновом задании на стороне сервера. Задание запускается от имени системной учетной записи (например, usr1cv8).

Проверим права доступа:

  1. Убедимся, что учетная запись службы 1С имеет права на «Чтение и выполнение» файлов в папках ImageMagick и Ghostscript.
  2. Проверим наличие прав на запись во временный каталог системы (%TEMP%), куда 1С сохраняет промежуточные графические файлы перед отправкой в модуль распознавания CuneiForm или Tesseract.

После выполнения описанных настроек цепочка конвертации PDF в растровое изображение и последующего распознавания текста в «1С:Документооборот» будет работать корректно.

← На главную