|
|
|
Создаем принт-сервер "JetDirect" в среде Windows ("общий доступ" дает бесправный) ₽ |
☑ | ||
|---|---|---|---|---|
|
0
smaharbA
22.04.10
✎
22:40
|
Качаем тут и распаковываем в любую папку
http://www.karat-e.ru/files/lpserver.zip запускаем пакетный файл lpserver.bat если запустить без аргументов, то "jetDirect" будет на порту 9100 и печать на принтер по умолчанию. Параметры командной строки: lpserver.bat ["Имя принтера как в системе"] [номер порта] Если имя принтера содержит пробелы, то заключаем в кавычки, если в имени принтера присутствуют кавычки, то заменяем их на парные и тоже заключаем имя в кавычки. Номер порта может быть в десятичном, восьмеричном и шестнадцатиричном формате, к примеру: 9101, 021615 или 0x238D Восьмеричный начинается с символа 0..., шестнадцатиричный с 0x... Про netcat для windows читаем тут http://www.rodneybeede.com/Compile_Netcat_on_Windows_using_MinGW.html и тут http://joncraton.org/blog/46#disqus_thread (в последнем антивирус может ругнуться, но там все расписано, если сыкливо то по первой ссылке) По rawprint читаем тут http://support.microsoft.com/kb/138594/ Все... (будет не лениво уйду от нетката и равпринта, пакетник специально для показать то что в пакетниках многое возможно, по сути пакетник может быть всего из 4 строк) |
|||
|
1
Fragster
гуру
22.04.10
✎
22:46
|
(0) а оно по snmp статус отдавать будет?
|
|||
|
2
Fragster
гуру
22.04.10
✎
22:46
|
а на пакетниках - и морской бой писали..
|
|||
|
3
Asmody
22.04.10
✎
22:50
|
мсье знает толк в извращениях. а может еще и cups под виндой запустить?
|
|||
|
4
Fragster
гуру
22.04.10
✎
22:50
|
(3) уто было бы круто. и принтеров 5 в пул объединить...
|
|||
|
5
Asmody
22.04.10
✎
22:54
|
(4) делов-то: colinux+mingw+исходники+ много-много свободного времени и желания потрахаться с извращениями
|
|||
|
6
Fragster
гуру
22.04.10
✎
23:06
|
(5) лучше бабу
|
|||
|
7
Ковычки
22.04.10
✎
23:08
|
неткат позволит и псевдо группировку делать ))
|
|||
|
8
Asmody
22.04.10
✎
23:11
|
(6) такие извращения не каждая выдержит
|
|||
|
9
Ковычки
22.04.10
✎
23:11
|
сабж очень полезен линуксоидам, в нем ответ на "нерешаемое"
|
|||
|
10
DjSpike
22.04.10
✎
23:15
|
(9) и в чем его полезность ?
|
|||
|
11
Ковычки
22.04.10
✎
23:24
|
(10) Вы печатали на canon mf 3110 или еще какой panasonic 650 ?
решение в линуксе аналогичное, не требует настроенной системы печати много бьется лбом о косяки капса и самбы, а ответ ужасно прост |
|||
|
12
Ковычки
22.04.10
✎
23:24
|
и применяется не один год
|
|||
|
13
DjSpike
22.04.10
✎
23:39
|
(11) Печатал, только использую другой костыль в видe redmon и gs864. Вот описание http://osdir.com/ml/altlinux.hardware/2005-04/msg00419.html
|
|||
|
14
DjSpike
22.04.10
✎
23:40
|
Вот теперь интересно какой из вариантов лучше ???
|
|||
|
15
Ковычки
23.04.10
✎
00:03
|
(13) не путай божий дар с яичницей, кстати по этому поводу все еще просче
|
|||
|
16
DjSpike
23.04.10
✎
08:22
|
(15) И что из них божий дар а что яишница ???
|
|||
|
17
smaharbA
23.04.10
✎
09:38
|
(16) решение в ссылке (13) крайне убогое
все решается либо в бакенд скриптах капса либо аналогией сабжу |
|||
|
18
smaharbA
23.04.10
✎
09:39
|
+(17) и не нужен для этого никакой редмон
|
|||
|
19
DjSpike
23.04.10
✎
09:55
|
(18) ладно попробуем, данное решение. А что в данном случае надо будет прописывать на стороне cups , какой принтер указвать ?
|
|||
|
20
smaharbA
23.04.10
✎
10:03
|
(19) на стороне капса как и в (13) прописывается либо постскрипт принтер, либо пдф на схему socket://x.x.x.x:xxxx
в приведенное решение (конечно лучше переписать на wsh) внедряют либо тот же gs либо adobe reader с выводом на печать соответствующим (вместо rawprint) либо делают вариант с бакенд скриптами капса, создают свою схему типо customprint://... и тут уже гибче, либо вывод на аналогию сабжа, либо на тот же общий доступ через smbclient В целом, сабж был не как готовое решение, а как пример возможности решения вопроса |
|||
|
21
smaharbA
23.04.10
✎
10:04
|
с бакенд скриптами можно сделать и возможность создания пользователем нужного принтера без прав рута
|
|||
|
22
Ковычки
26.04.10
✎
22:32
|
добавлен джихост и печать из постскрипт и пдф
|
|||
|
23
smaharbA
27.04.10
✎
21:02
|
Версия дополненная и переработанная
http://www.n-d.ru/images/lpserver.rar (объем 16 мегабайт) включает в себя ghostscript, позволяет печатать на socket://адрес:порт в форматах PostScript, PDF, PCL и RAW т.е. достаточно установить на клиенте принтер с дривером PostScript, PDF или PCL (для виндуз к примеру HP LaserJet 1200 PCL или любой другой) печатать будет на любой установленный на "сервере" принтер, даже самый виндовозный. проверено как "сервер печати" на windows XP/2003, как клиент на Mandriva,Windows XP/2003/7 Запуск без параметров найдет свободные порты начиная с 9100 и повешает на них имеющиеся принтеры, первый из свободных портов будет задействован для печати на принтер по умолчанию от чьего имени запущен пакетник (права на запуск и использование не нужны) |
|||
|
24
DjSpike
28.04.10
✎
09:42
|
(23) Спасибо за данную очень полезную вещь... Попробовал понравилось больше чем вариант который я озвучивал в (13). Подскажи а можно сделать так чтобы у пользователя не весело черное окно батника, и чтобы он запускался сразу при запуске системы.... ну т.е. оформить это как службу windows ?
|
|||
|
25
smaharbA
28.04.10
✎
11:52
|
(24) дописываю некоторые исправления пакетника
а запускать можно из шедулера от другого пользователя перепишу на скрипты и в пакетник и скриптовый вариант включу вывод в очередь печати источник печати и документ (для логирования) еще дополнение - сделаю "обратную" печать на принтер подключенный к линуксу непосредственно и не имеющий дриверов и бакендов для капса, это просто и сейчас реализуется, но думаю в один флакон загнать если хватит терпения то сведу батник и скрипт WSH и bash в один файл |
|||
|
26
smaharbA
28.04.10
✎
11:54
|
на скриптах окон конечно не будет (диагностические может и сделаю)
да еще - прикрутить надо и акробат ридер если установлен в системе проверять |
|||
|
27
DjSpike
28.04.10
✎
14:42
|
Ждемс с нетерпением....
|
|||
|
28
Ковычки
30.04.10
✎
01:04
|
Версия 0.3, комбинированный пакетный файл, запускаться может и как пакетник и как JavaScript (без окна)
изменены параметры запуска, порядок ключей значения не имеет, если не указывать ключ /all то слушатель будет только для одного принтера стартовать и стопать можно как в командном режиме так и в джабе. Подсказка минимальная, ссылок на свободные утили в коде пока нет. http://www.karat-e.ru/files/lpserver-0.3.zip |
|||
|
29
Ковычки
30.04.10
✎
01:07
|
*.****************************************************************
*.Использование как КОМАНДНОГО ФАЙЛА: *.lpserver.js.bat ["Имя Принтера"] [Номер Порта TCP] *.[/start | /stop | /restart | /status] [/all] [/js] *.[/all] - Использовать для всех принтерах. *.[/js] - Стартовать как JavaScript. *.[//b] - Включить тихий режим для JavaScript. *.[/restart] - Пока не реализовано. *.**************************************************************** *.Использование как JavaScript: *.wscript.exe/e:javascript lpserver.js.bat... *.**************************************************************** *.Если название Принтера включает символы ", то замените их на \'. *.[/en | /ru] - Язык помощи. Без указания - язык системы. *.**************************************************************** |
|||
|
30
DjSpike
30.04.10
✎
08:26
|
файл по ссылке что-то не скачивается.
|
|||
|
31
smaharbA
30.04.10
✎
10:30
|
Не ту ссылку указал ))
http://www.n-d.ru/files/lpserver-0.3.zip некоторое причесывание кода, возможность использовать в ключах как / так и - http://www.n-d.ru/images/lpserver-0.3.1.rar |
|||
|
32
smaharbA
30.04.10
✎
10:33
|
снава не совсе то ))
так правильно ! http://www.n-d.ru/images/lpserver-0.3.rar http://www.n-d.ru/images/lpserver-0.3.1.rar |
|||
|
33
smaharbA
30.04.10
✎
10:34
|
Отображение в диспетчере печати реальных данных кто и что печатает еще не реализовано
|
|||
|
34
ildary
30.04.10
✎
11:06
|
(33) появится в будущих версиях?
|
|||
|
35
smaharbA
30.04.10
✎
11:13
|
обязательно
|
|||
|
36
smaharbA
30.04.10
✎
11:14
|
хотя пока даже метод restart не реализован )))
|
|||
|
37
smaharbA
30.04.10
✎
11:33
|
устранена досадная ошибка в последней версии, не верно определял тип выходного потока т.е. PS,PDF,PCL или RAW ((
|
|||
|
38
smaharbA
14.05.10
✎
16:48
|
издание четвертое дополненное и переработанное
http://www.n-d.ru/images/lpserver-0.4.7.rar - исправлена досадная ошибка в таблице символов - сделано автоопределение utf8 кодировки в полях комментариев - изменена работа :unescape, декодирует как cp1251 так и utf8 - сделано "обрезание" файла, для определения параметров не по всему файлу - код пакетной части подробно комментирован, и может быть выведен новым ключем /rem - добавлена работа с .XPS - изменено определение типов файлов - добавлено логирование печати, виндуз для большинства дриверов логирует и имя и название документа - много повторяющегося кода вынесено в "процедуры" (метки), создан интересный механизм возврата значений из "процедур" для линук без изменений в ОС будет логирование только удаленного адреса если нужно сделать полное логирование надо добавить в /usr/lib/cups/backend примерно такой скрипт с именем socket.sh (есть в архиве) (URI принтера надо поменять с socket://x.x.x.x:91xx на socket.sh://x.x.x.x:91xx) #!/bin/sh LANG=ru_RU.UTF-8 tocode=utf-8 function recodes() { LANG=ru_RU.UTF-8 iconv -t $tocode | od -A n -w1024 -t x1 - | tr 'a-z' 'A-Z' | tr -d ' \t' } backend=/usr/lib/cups/backend/`basename "$0" .sh` pspool=/var/spool/cups/tmp spool=$pspool/`basename "$0" .sh`.$RANDOM.spool if [ ! -d "$pspool" ]; then mkdir -p "$pspool" 2> /dev/null fi cat >> "$spool" DEVICE_URI=`basename "$0" .sh`:${DEVICE_URI#*:} type=`file -ib $spool` title=`echo -n $3 | recodes ../qp | sed 's/ =/=20=/g; s/=//g' | tr -d '\n'` user=`echo -n $2 | recodes ../qp | sed 's/ =/=20=/g; s/=//g' | tr -d '\n'` if [ "${type%;*}" = "application/postscript" ]; then sed 's/^%!PS-Adobe-3.0/%!PS-Adobe-3.0\n%%For: <'"$user"'>\n%%Title: <'"$title"'>\n/g' "$spool" | `which ps2pdf` - - > $spool.pdf sed 's/^%!PS-Adobe.*/%!PS-Adobe-3.0\n%%For: <'"$user"'>\n%%Title: <'"$title"'>\n/g' "$spool" | "$backend" "$@" ret=$? elif [ "${type%;*}" = "application/pdf" ]; then sed 's/^%PDF.*/%PDF-1.4\n%%For: <'"$user"'>\n%%Title: <'"$title"'>/g' "$spool" | "$backend" "$@" elif [ "${type%;*}" = "application/octet-stream" ]; then ( echo -e '\x1b%-12345X@PJL' echo @PJL COMMENT "\"Username: <$user>; Filename: <$title>; `date +%d.%m.%Y`\"" cat "$spool" ) | "$backend" "$@" ret=$? else "$backend" "$@" < "$spool" ret=$? fi rm -f "$spool" exit $ret (в общем - пишите письма) |
|||
|
39
smaharbA
14.05.10
✎
16:54
|
будет дополнено ответом на запросы клиента при нахождении принтеров JetDirect
так же ждет реализации двусторонний обмен, для получения всяких параметров, типа остатка тонера/чернил и прочего, отправки тестовой страницы принтера (не тестовой страницы системы печати) из линукса есть проблема печати документов содержащих разные размеры страниц |
|||
|
40
Ковычки
18.05.10
✎
22:38
|
сделана "обратная печать", для печати на непосредственно подключенный к машмне принтер через "принтсервер" в сети, без наличия дриверов на машинке (ранне такое делалось, но ручками)
пешите письма |
|||
|
41
DjSpike
18.05.10
✎
23:17
|
Эх... очередное огромное спасибо. На днях попробую.
|
|||
|
42
Ковычки
18.05.10
✎
23:18
|
"обратная печать" пока не выложена
|
|||
|
43
Ковычки
20.05.10
✎
20:37
|
плюсом написан простенький скрипт эмулирующий JetDirect в линуксе/бсд (на бсд еще не проверил)
возможно обходиться и без этого скрипта просто "шведским ножом" или ncat из пакета nmap или просто в inetd/xinet.d но сделано для универсальности, на сколько возможно максимум не использовано внешних утилит (скрипт составной шел и перл, будем еще упрощать не теряя универсальности)
|
|||
|
44
Ковычки
20.05.10
✎
21:08
|
да строчка
devices="/tmp/lp0 /tmp/lp1" лишняя, была для тестирования |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |