Друк в Chrome без підтвердження
Існує завдання для 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 (непофікшено)