Перейти к содержанию

Печать из веб-приложения на локальные принтеры

CloudPrint обеспечивает управляемую печать из веб-приложения для счетов, этикеток, чеков и рабочих документов. Браузер передаёт действие пользователя вашему серверу, а сервер выбирает локальный принтер, создаёт идемпотентное задание и сообщает фактический результат.

Когда достаточно диалога браузера

Используйте window.print(), если человек может каждый раз выбрать принтер и подтвердить печать на месте. Web Application Printing API нужен, когда продукт должен направлять документы на сохранённый или удалённый принтер, убирать повторяющиеся диалоги, фиксировать результат и безопасно переживать сетевые сбои.

Отправляйте задания через свой сервер

Клиентская часть передаёт серверу идентификатор документа и выбранную точку или принтер. Сервер создаёт либо получает файл, вызывает CloudPrint Public API и возвращает собственный идентификатор операции. client_secret и Bearer-токен не попадают в браузер.

Используйте минимальную последовательность API

Получите принтеры через GET /api/v1/printers, загрузите готовый файл в POST /api/v1/documents, создайте задание через POST /api/v1/print-jobs, затем вызывайте GET /api/v1/print-jobs/{printJobId} до конечного результата. Подключение агента и очередей описано в руководстве Local Printer API.

Выбор принтера

Во время настройки получите принтеры через GET /api/v1/printers и сохраните стабильный printer_id. В интерфейсе можно показать имя, агент и статус online, но отображаемое имя не является ключом маршрутизации.

Интерфейс оператора

После команды «Печать» показывайте принятие, ожидание, печать и конечный результат. Защитите кнопку от случайного двойного нажатия, но оставьте осознанную повторную печать отдельной операцией. При ошибке показывайте причину и идентификатор для поддержки.

Работа при сетевых сбоях

Сервер должен передавать стабильный Idempotency-Key, сохранять print_job_id и продолжать проверку после обновления страницы. После тайм-аута нельзя считать запрос неуспешным — сначала повторите тот же идемпотентный вызов или восстановите сохранённый результат.

Чего избегать

Не вызывайте агент из браузера, не публикуйте принтеры в интернете, не храните секреты в localStorage и не принимайте успешный HTTP-ответ за подтверждение печати. Результат известен только по конечному статусу задания.

Следующие шаги

Руководства по интеграции CloudPrint, подключению локального агента и надёжной работе печати.