Задать вопрос
@rasschitai

Как заставить принтер(ы) печатать с удаленного сервера?

Добрый день, ребят нужна помощь)

Что имеем:
1. Комп (Windows 10)
2. Кучка разных принтеров (этикеток в основном), подключенных к компу
3. ?
4. Сайт (сервер Centos 8, php)

Что нужно сделать в 3 пункте, что бы я с сервера стукнул в комп и распечатал текст на принтере?

* по части кода php смотрю на это https://github.com/mike42/escpos-php?tab=readme-ov-file
  • Вопрос задан
  • 125 просмотров
Подписаться 1 Средний 4 комментария
Пригласить эксперта
Ответы на вопрос 4
402d
@402d
начинал с бейсика на УКНЦ в 1988
а) Вариант "самописный клауд принт"
1. подними на сервере апи для получения задач на печать.
2. на компе с принтерами (в локалке) запусти по крону запуск клиента

б) Вариант "Интранет"
прокидывается впн. Ваш сервер печатает на принтеры, как будто он с ними в локальной сети.

с) Вариант "Сервер печати в локалке"
Из броузера через js идет обращение к апи программы запущенной на том же ПК / в локалке

применительно к PHP
проще написать по варианту А.
Ответ написан
@artem-dainov
Php, java, js. Boot spring, jquery, git
Так и не понял. Компьютер у вас клиент или так же сервер.
Просто как вы из сервера собрались стучать в клиент? Вы в клиент можете только отдать от сервера.

В вашем случае я бы сделал бы так.
Поставил open server или что-то подобное.
Написал бы скрипт, который время от времени дергал бы крон.
А сам скрипт обратился бы к командной строке и отправил бы на печать документ.
Остаётся лишь решить, сервер в той же сети или вообще где-то в дата центре. Если в дата центре, то open server вам точно не подойдёт.
Вам тогда нужно будет самому настроить всё вручную и вам нужно будет что-то решить с Ip адресом.

И так. Подведем итог.
1. Вам нужен веб сервер на компьютере, к примеру apache, nginx, lighttp.
2. Вам нужен php для windows
3. Вам нужны функции php типо system() или exec()
4. Вам нужен крон или подобный инструмент.
5. вам нужно написать маленький api, сервер который будет вызывать и отправлять на печать.
6. Вам нужно решить проблему с динамическим ip, если сервер с линуксом где-то в дата центре.
7. Если сервер в локальной сети, то вопрос динамическим ip отпадает. в этом случае вы можете поставить на компьютер open server или подобный инструмент.
Ответ написан
Fragster
@Fragster
помогло? отметь решением!
скрипт, который смотрит pdf в папках под каждый принтер и выводит на печать с помощью акробата и удаляет, в цикле с паузой в 1 секунду. бэкэнд формирует pdf и кладет в папку, примонтированную по сети, из которой скрипт забирает файл и печатает.
Ответ написан
Комментировать
cyber-jet
@cyber-jet
Обычно пишется программа на любом доступном языка, в основном на C++, можно на php, если так проще, запускать на хосте к которому подключен принтер, через планировщик скрипт с определенным интервалом, который обращается на сервер через GET/POST и получает ответ, а дальше есть варианты, либо готовый файл для печати, либо какие-то данные, массив, объект из которых на свой стороне "рисует" что нужно и отправляет на печать. Многие принтеры, особенно принтеры этикеток, умеют печатать из командной строки, чтобы проще было интегрироваться в любые ИС.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы