Я работаю в розничном магазине в маленьком городке. У нас есть счета для рабочих и водителей грузовиков, которые могут прийти, получить то, что они хотят, подписать бумаги и вернуться к работе. На самом деле это не проблема, но мой босс хотел установить планшеты для подписи на прилавках, чтобы им приходилось подписывать только один раз, а не 4-6 раз за поездку. Я подумал и прочитал об этом, и я решил, что это будет не так уж сложно, поэтому я уговорил своего босса позволить мне попробовать запустить его. У меня был опыт работы с C # и AutoHotKey в прошлом, но почти не работал с сетью.
У меня сейчас работает большая часть моей программы, но она действительно скудная и не очень эффективная, потому что я использую довольно ненадежный способ получения подписей. У меня в офисе есть компьютер под управлением Linux, подключенный к коммутатору. На том же коммутаторе у меня есть старый принтер, на котором коммутатор зеркалирует пакеты и отправляет их на компьютер Linux. Tcpflow в Linux, который настроен на автоматический запуск и запуск 24/7, захватывает эти пакеты и сохраняет их в общей папке в сети. Сохраненные файлы пакетов можно легко преобразовать с помощью ghostscript из Postscript в формат PDF для подписи.
Самая большая проблема, с которой я сталкиваюсь, заключается в том, что зеркалирование этого принтера действительно ненадежно. Если на принтере заканчивается бумага в офисе, когда там никого нет, он накапливает задания на печать и больше не принимает TCP-пакеты, поэтому каким-то образом коммутатор не может их зеркалировать, и это нарушает весь процесс.
Иногда общий сетевой ресурс из Linux в Windows отключается в Linux, но это не совсем то, что я ищу в этом вопросе.
Я хочу знать, есть ли какой-то способ имитации принтера по сети с физическим IP-адресом, который я мог бы распечатать с помощью нашего сервера магазина. Я не могу просто поделиться виртуальным принтером или чем-то еще, потому что на нашем сервере магазина запущено какое-то проприетарное программное обеспечение на SunOS. Единственный способ настроить принтер в этом программном обеспечении - использовать IP-адрес принтера.
Если потребуется дополнительная информация, я буду более чем счастлив ответить, я буду доступен весь день, поэтому не займет много времени, чтобы ответить, если что-то не произойдет. Спасибо вам всем.
Установите Samba в Linux, настройте общий «принтер», который вызывает сценарий для сохранения в формате PDF, а также выполняет любые действия и даже в конечном итоге распечатывает бумажную копию.
Фрагмент конфигурации Samba может выглядеть так:
[PDFprinter]
comment = Samba Virtual PDF Printer
printing = LPRNG
path = /var/spool/samba
printable = Yes
lpq command =
lprm command =
print command = /usr/local/bin/print2pdf /var/spool/samba/%s /home/%U
И простой PDF-принтер, который выводит результат в пользовательский $HOME
- вы можете изменить это, чтобы делать все, что угодно, и вы можете использовать любой язык сценариев, который может принимать ввод / аргументы от stdin - %s
поток печати данных PS, %U
это пользователь, который распечатал в общую папку.
#!/bin/bash
bn=`date +%s`
ps2pdf "$1" "$2"/print_$bn.pdf
exit 0
Установите принтер с помощью любого драйвера принтера PostScript - мне нравятся драйверы HP color laserjet, выберите достаточно старую модель, и драйвер будет встроен в любую ОС, в которой вы его используете (я специально использую Color LaserJet 5 / 5m или серии 2500, Apple Color LaserWriter был хорош еще во времена XP ...)
Я использовал аналогичную настройку печати для PHP-скрипта, который сохранял бы PDF-файл в базе данных в виде большого двоичного объекта, отправлял электронное письмо пользователю со ссылкой на веб-форму для сбора информации на титульном листе, отправлял и получал факсы через hylafax
и хранить входящие факсы в БД. Работая на Pentium 200 с оперативной памятью 32 Мб, отправляла и принимала 75 тысяч факсов в год для страхового агентства на 30 человек.
Если IP-адрес и общее имя не работают, и вам просто нужен чистый IP-адрес, установите CUPS
в системе Linux и установите собственный общий принтер, а затем поделитесь им через CUPS
- Я думаю, это позволит вам указать простой IP-адрес и, возможно, номер порта, чтобы указать используемый принтер.