Браузеры позволяют отправить на печать документ с предпросмотром. Это правильно, ведь в веб странице нету разметок, вам также нужно выбрать принтер и формат бумаги.
Существуют даже платные драйвера, способные выводить печать напрямую. Настолько это проблема не простая
Но когда печатать вам нужно массово и настройки вы все себе уже настроили - есть способ организовать это дело через дополнительные инструменты
Как же так происходит что десктопные программы могут печатать напрямую, а браузер не умеет. Мы хотим сами управлять диалоговыми окнами и то если в них будет необходимость.
Формат бумаги и прочие вопросы можно решить, сгенерировав на сервере заранее ПДФ файл, но отправить его на печать без окна предпросмотра всё равно нельзя стандартно.
Для решения проблемы нам потребуется серверное приложение, и это приложение будет находиться на компьютере который будет подключен к принтеру (то есть текщем). Совершенно не важно на каком языке его написать
Если вы хорошо знаете веб - то рекомендую node.js
Если вы пишите на php - рекомендую go, либо поднять веб сервер nginx + собрать php
В остальных случаях вы можете писать от Java до C#, не важно
Механизм который нужно будет создать следующий:
- Открыть свободный порт на прослушку
- При поступлении сообщения по порту - принять файл, или получить адрес откуда забрать файл,
- сохранить файл на жестком диске
- выполнить вызов командной строки `lp` с указанием принтера и других особенностей
Вот и весь скрипт.
Из нюансов - возможно нужно будет решить проблему с CORS - просто передав заголовок, либо отправлять запрос напрямую через клиента через iframe либо создание формы, т.к. стандартные HttpRequests будут просить CORS
На стороне клиента - делаете http запрос на localhost по указанному открытому порту
Вот и всё
желаю удачи