Друк в Chrome без підтвердження

Існує завдання для pos-систем друкувати що-небудь автоматично: чеки, квитанції і т Існує завдання для 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 (непофікшено)