Разработка, HowTo

Печать в Chrome без подтверждения

Снимок экрана от 2017-10-28 01-07-21Существует задача для pos-систем печатать что-либо автоматически: чеки, квитанции и т.п. Хочется, чтобы печать можно было инициировать из скриптов, но по дефолту все браузеры показывают диалог печати или предварительный просмотр.

Это неудобно при создании киосков.

Казалось бы уже неоднократно с таким сталкивались и должны были придумать подходящее решение. Но, увы, решение есть, а все советы о том, как его использовать даже на официальных форумах браузеров некорректны.

Что нам предлагают:

  • Использовать опцию —disable-print-preview (или включать аналогичную настройку в about:flags)
  • Вместе с ней включать опцию —kiosk-printing, которая в теории должна избавить нас от диалога выбора принтера.

А вот и нет. Эти опции нельзя использовать совместно. В чем суть: —disable-print-preview передает управление на диалог выбора принтера в системе, а это лишает нас контроля над выбором пользователя. Во многих (во всех) конфигурациях windows и linux нельзя избавиться от шага выбора принтера, а предварительный просмотр в хроме подменяет диалог выбора принтера.

Опция —kiosk-printing воздействует только на диалог предварительного просмотра chrome сразу печатая просматриваемый документ, а если мы его отключим, то и смысла в установке этого параметра нет.

Отсюда вывод: если вы хотите делать автоматическую печать, то используйте только —kiosk-printing.

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

<!DOCTYPE html>
<html>
<head>
<title>autoprint</title>
</head>
<body>
data
<script>
    window.addEventListener('load', function() {
      window.print()
    })
  </script>
</body>
</html>

И это сработает — принтер начнет печатать.

UPD:

Chromium, issue 169004: баг с окном предварительного просмотра в режиме kiosk-printing (непофикшено)

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s