Назад | Перейти на главную страницу

Какой способ захвата заданий на печать по сети был бы наиболее надежным?

Я работаю в розничном магазине в маленьком городке. У нас есть счета для рабочих и водителей грузовиков, которые могут прийти, получить то, что они хотят, подписать бумаги и вернуться к работе. На самом деле это не проблема, но мой босс хотел установить планшеты для подписи на прилавках, чтобы им приходилось подписывать только один раз, а не 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-адрес и, возможно, номер порта, чтобы указать используемый принтер.