Цель проекта - добавление поддержки облачной печати принтерам, которые изначально не поддерживали эту технологию.
Здесь хранится полный код сервлета, который загружается в Apache Tomcat на необходимое устройство (в нашем случае на Raspberry Pi 4) и обрабатывает запросы на печать в пределах локальной сети.
Проект почти полностью написан на языке Kotlin с использованием технологии Kotlin Multiplatform. Присутствует разделение на 3 модуля: shared - модуль общего кода, composeApp - модуль с кодом для отрисовки интерфейса с помощью фреймворка Compose Multiplatform и server - модуль с кодом сервера.
В модуле находится лишь один класс ServiceAttributeSet.kt, который используется для клиент-серверного взаимодействия.
Модуль разбит на подмодули commonMain - модуль с кодом, используемым при отрисовке всех интерфесов проекта и wasmJsMain - модуль кода для отрисовки интерфейса веб-страницы.
Модуль с кодом сервера. Использует библиотеку Ktor с модулями CORS, Routing и ContentNegotiation. Также возвращает веб-страницу, используя скомпилированный (транслированный) код модуля wasmJsMain, который находится в папке libs/wasm. Одноимённый объект в файле PrintingTools.kt ответственнен за печать (использует содержимое пакета javax.print)
- Пользователь заходит на веб-страницу
- Пользователь выбирает принтер
- Пользователь выбирает атрибуты печати
- Пользователь выбирает и загружает файл для печати
- Пользователь начинает печать
