Я работаю в розничном магазине в маленьком городке. У нас есть счета для рабочих и водителей грузовиков, которые могут прийти, получить то, что они хотят, подписать бумаги и вернуться к работе. На самом деле это не проблема, но мой босс хотел, чтобы на прилавках были установлены планшеты для подписи, чтобы им приходилось подписывать только один раз, а не 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 series, Apple Color LaserWriter был хорош еще во времена XP. ...)
Я использовал подобную настройку печати для PHP-скрипта, который будет хранить PDF в дб в виде капли, посылать электронное письмо пользователю со ссылкой на веб-форму для сбора информации о титульном листе, посылать и получать факсы по hylafax
и хранить входящие факсы в БД. На Pentium 200 w 32mb барабан, отправленный и полученный факс 75k в год для 30 человек страхового агентства.
Если IP & Share Name не будет работать и вам просто нужен чистый IP, то установите CUPS
на Linux box и установите его собственный общий принтер, а затем повторно используйте его через CUPS
- думаю, это позволит вам сделать простой IP и, возможно, номер порта, чтобы указать принтер для использования.