Можно. Например, ipfw.
А, возможно, IPP уже сконфигурирован сам собой на винде? Ну, то есть,
если я на другую винду в локалке подключу тот принтер через
http://192.168.0.xx/printer/... и оно заработает - значит ли это, что
IPP работает. И если да - то какого рода порт-маппинг надо сделать на
шлюзе? Если я просто буду трафик, адресованный порту 80 на ФриБСД,
пробрасывать внутрь на винду - будет ли этого достаточно, или надо все
таки какие-то более "продвинутые" приседания совершить?
можно печатать по rdp и пробрасывать через шлюз rdp
Так оно и должно работать - а не работает. Человек заходит по РДП на
удаленный терминал-сервер. Все принтеры, кроме одного, мапятся
корректно. Этот один - сцуко, не желает. Само собой, его драйвера
установлены на терминал-сервере (с правами админа). Возможно, я то-то
упустил - но не получается так. Придумал вот через ИПП только.
Поправка. Ты говоришь про то, как можно ходить на ХР (к которой
подключен принтер) снаружи по РДП. Верно? Если верно, то - неверно! :)
На самом деле, то, что я написал в предыдущем письме (что принтер не
мапится) относится к тому, когда с этой машины ХР с этим пацаватым
принетром ходят по РДП на терминал-сервере (где запускают 1С - тут
Заборовский аплодирует), и вот как раз при таком удаленном доступе не
мапится этот принтер. Моя идея состоит в том, что поднять на этой
машине в локалке ИПП, сделать порт-маппинг на шлюзе, и тому терминал-
серверу указать подключить вот такой-то принтер. Т.е., выходит, как
бы, задом наперед.
> Поправка. Ты говоришь про то, как можно ходить на ХР (к которой
> подключен принтер) снаружи по РДП. Верно? Если верно, то - неверно! :)
> На самом деле, то, что я написал в предыдущем письме (что принтер не
> мапится) относится к тому, когда с этой машины ХР с этим пацаватым
> принетром ходят по РДП на терминал-сервере (где запускают 1С - тут
> Заборовский аплодирует), и вот как раз при таком удаленном доступе не
> мапится этот принтер. Моя идея состоит в том, что поднять на этой
> машине в локалке ИПП, сделать порт-маппинг на шлюзе, и тому терминал-
> серверу указать подключить вот такой-то принтер. Т.е., выходит, как
> бы, задом наперед.
не надо никакого мапинга.
выключи автомапинг нафиг.
в винде сперва под админом заходишь в терминал, устанавливаешь все
нужные принтеры, затем заходишь под каждым юзером, устанавливаешь под
его учетной записью эти же принтера уже ему (т.е. драйвера уже
установлены на первом шаге, когда ты под админом заходил) и все.
я всегда так делаю и никаких проблем, все работает и печатается.
и не надо ничего в интернет мапить -- некошерно это...
> Поправка. Ты говоришь про то, как можно ходить на ХР (к которой
> подключен принтер) снаружи по РДП. Верно? Если верно, то - неверно! :)
я хз о чем я:) просто видел как по рдп сам же заходил на свою рабочую
машину и без всяких телодвижений печатал
типа такого наверное?
http://www.msterminalservices.org/articles/Windows-Terminal-Services-Printing.html
> в винде сперва под админом заходишь в терминал, устанавливаешь все
> нужные принтеры, затем заходишь под каждым юзером, устанавливаешь под
> его учетной записью эти же принтера уже ему (т.е. драйвера уже
> установлены на первом шаге, когда ты под админом заходил) и все.
> я всегда так делаю и никаких проблем, все работает и печатается.
да. но у нас сцуко тоже умные админы были :) ваще ничего не делали а все
печаталось...
PPTP VPN не катит?
На фре поднимается с полпинка...
А то есть любители IPP пофлудить :)
--
Viktor Kompaneyets
VK3-UANIC
> я хз о чем я:) просто видел как по рдп сам же заходил на свою рабочую
> машину и без всяких телодвижений печатал
> типа такого наверное?
> http://www.msterminalservices.org/articles/Windows-Terminal-Services-Printing.html
>
это и есть автомапинг.
с некоторыми моделями принтеров (например, canon lbp) он работает
несколько некошерно.
Не которые принтера в терминальном сервере так и будут недоступны. Я
сталкивался с гнусмасом лазерным GDI, который работал только при прямом
подключении к терминал-серверу шнурком.
--
Viktor Kompaneyets
VK3-UANIC
> да. но у нас сцуко тоже умные админы были :) ваще ничего не делали а все
> печаталось...
оно и должно работать "искаропки", но иногда глючит.
от принтера зависит.
у нас вот с кэнонами были проблемы, в итоге я это дело выключил и сделал
так, что в 1С юзеры удаленных офисов себе вместо того, чтобы послать на
печать документ, посылают его себе по почте.
т.е. юзер удаленного офиса кнопает в 1С "Печать", а она сама видит, что
юзер удаленный, формирует xls-файл и отправляет его нужному юзеру.
небольшая процедурка.
По поводу установки драйверов на ТС сначала под админом и т.д. Это уже
сделано. Правда, когда заходишь под пользователем, непонятно, как же
принтер добавлять. Вот оно скажет - а где принтер-то? И что я отвечу?
Указать его расположение не представляется возможным, т.к. виндовая
машина находится за ВПН-ом, да еще и за маскарадом. Туда не
достучишься.
То, что сказано про некоторые принетры, которые отказываются мапится в
тс-режиме - это, видимо, и к моему принтеру относится.
По поводу ВПН. Он уже и так есть - между шлюзом на ФриБСД и одной из
промежуточных виндовых машин перед ТС.
Тут просто такого накручено-намучено, что либо это надо все
переделывать (тогда развалится взаимодействие завода с офисом), либо
же как-то выкрутится. Вот мне на сейчас ИПП кажется одним из
нормальных вариантов. А пакетным фильром я бы ограничил использование
ИИ только с внешнего адреса той сети, где живет ТС. Второй вариант -
то, что ты написал про отправку по почте. Можно поподробнее, плиз?
ты когда зашел на терминальный сервер -- ты уже в ТОЙ сети (терминал же
там) и тебе безразлично, что ДО этого ты прошел маскарад и портмаппинг.
ТАМ ты и клацаешь на сетевом окружении, ищешь нужный принтер и вуаля.
просто под юзером оно не даст драйвера поставить, а так драйвера уже
есть, винда ругнется, но принтер установится.
у мну кэноны именно так и ставятся.
или я чего не понимаю?..
Это я понимаю - не совсем же балбес. Про ВПН я написал потому, что тут
упомянули ВПН постом ранее.
> ТАМ ты и клацаешь на сетевом окружении, ищешь нужный принтер и вуаля.
> просто под юзером оно не даст драйвера поставить, а так драйвера уже
> есть, винда ругнется, но принтер установится.
> у мну кэноны именно так и ставятся.
>
> или я чего не понимаю?..
Не понимаешь :). Или я не понимаю. Зашел на ТС админом. Поставил
драйвера этого долбаного принтера (точнее, весь кагал софта,
скачанного с оф. сайта - там, в т.ч., и драйвера). Вышел с ТС, зашел
опять пользователем, с той машины, к которой по УСБ подключен этот
принтер. Иду в принтерный раздел панели управления. Добавляю принтер.
Как его добавлять? Как локальный или сетевой? Вот это непонятно.
в конфигурации (v77) есть такая глобальная переменная "глПользователь"
она хранит ссылку на элемент справочника "Пользователи", где
регистрируются все юзеры, вошедшие в 1С.
юзер жестко прописан в конфигураторе (там, "Таня", "Вася", "Петя" и т.д.)
далее.
в конфигурации же есть справочник "Сотрудники",
добавляешь в элемент справочника "Пользователь" ссылку на элемент
справочника "Сотрудники",
типа юзер Вася = сотрудник В.В.Пупкин
и признак (ExternalUser=0|1 или перечисление Да|Нет - как понравится)
это внешний юзер или внутренний.
и туда же -- e-mail его, ну, куда слать, ежели что.
все.
дальше в процедуре Печать() проверяешь, это юзер внешний
?(ExternalUser=1,,);
если внешний, то вместо печати выгружаешь то, что тебе нужно
распечатать, в файл,
делаешь Таб.Записать(ИмяФайла, 1);
// 1 -- это в xls-файл
затем нужно это дело для верности еще сконвертировать в формат xsl-97,
потому что 1С пишет в xls-95 для совместимости (на "той" стороне может
оказаться ОпенОфис и будут грабли)
делаем примерно так
t_Excel = СоздатьОбъект("Excel.Application");
t_Excel.Visible = 0;
// незаметно для юзера
t_Excel.Application.Workbooks.Open(ИмяФайла);
t_Excel.Application.DisplayAlerts = 0;
t_Excel.ActiveWorkbook.SaveAs(ИмяФайла, 43);
// 43 -- это тип файла, xls-97
t_Excel.ActiveWorkbook.Close();
t_Excel = 0;
все, сконвертировали, можно посылать.
ОткрытьФормуМодально("Обработка",ИмяФайла,КаталогИБ()+"ExtReport\SendMail.ert");
командно-строчный сендмейл написан на Дельфи и вырыт в каком-то 1С'ном
репозитарии, могу прислать, если надо.
все.
где-то так..
Вот пошел попробовал. Зашел на ТС юзером. Добавляю принтеры. Локальный
добавить низзя - можно только сетевой. Из тех сетевых радиокнопок
активны только две - поиск в АД (там АД есть) и подключение типа \
\sertver\printer. Пункт с IPP (http://server/printers/) - недоступен
для выбора.
> Не понимаешь :). Или я не понимаю. Зашел на ТС админом. Поставил
> драйвера этого долбаного принтера (точнее, весь кагал софта,
> скачанного с оф. сайта - там, в т.ч., и драйвера). Вышел с ТС, зашел
> опять пользователем, с той машины, к которой по УСБ подключен этот
> принтер. Иду в принтерный раздел панели управления. Добавляю принтер.
> Как его добавлять? Как локальный или сетевой? Вот это непонятно.
а, ну да, ты прав...
сорри, протормозил.
Я думал (невнимательно прочитал), что это в винде, а не в 1С. Туда, в
1С, я не полезу - страшно. Наверное, надо погуглить на предмет какого-
то виртуального принтера, который отсылает сразу на указанный имейл.
Ну, типа, как есть такие сканеры. Думаю, что и виртуальный принтер
такой может быть.
> Я думал (невнимательно прочитал), что это в винде, а не в 1С. Туда, в
> 1С, я не полезу - страшно. Наверное, надо погуглить на предмет какого-
> то виртуального принтера, который отсылает сразу на указанный имейл.
> Ну, типа, как есть такие сканеры. Думаю, что и виртуальный принтер
> такой может быть.
ща секунду....
есть мысль -- проверяю.....
5 минут
была мысль попробовать стандартно через \\tsclient\<имя_принтера>
но не работает, так -- только диски клиентские на сервере видны,
например \\tsclient\c\windows\
впрочем, я тут намутил с праваими через group policy -- м.б. оно бы и
работало.
не на чем проверить
UPD. Установил ИИС на ту виндовую машину. Теперь можно в локальной
сети добавлять принтер через http://192.168.0.xx/printers/Printer_Name/.printer.
Можно - значит, "оно" уже это хавает и не ругается. Однако, просит
пароль и логин. Ввожу те, что работают на той машине (их два, логин
админа и юзера). Пароли ввожу верно. Однако, в этом месте посылает
нахуй (или на хуй - т.е., дает некоторую альтернативу, ага) -
сообщает, что пароли/логины не подходят. Тут тоже, что характерно,
домен. И там машинка включена в домен. А пробую я подключить принтер
на ту машину (т.е., с которой я это все пробую), которая как раз не в
домене. И не надо, чтобы она в домене была. Домен на 5 компов построил
какой-то балбес - наверное, прочитал в книжке, что надо домены
использовать. Никаких бенефитов от существования доменов тут нет. Вот
приходится пока с этим мирится (думаю, что придется все это
развалить). Правильно ли мое предположение, что не пускает с
правильными логинами/паролями с не-в-доменной машины именно по причине
ее не-в-доменности?
> развалить). Правильно ли мое предположение, что не пускает с
> правильными логинами/паролями с не-в-доменной машины именно по причине
> ее не-в-доменности?
ну связка д.б. логин+пароль+домен
а если просто логи+пароль -- то это ж совсем другой юзер
Так это "окошечко", где надо ввести логин/пароль, не предоставляет
возможности указать домен :(. Видимо, решится только через ввод
машины, к которой подключается принтер (не машины-хоста, к которой
принтер уже подключен) в домен? Ну, это как бы и не страшно. Однако!
Это же тестовые подключения. На деле через порт-маппинг на ФриБСД к
машине-хосту с принтером будет коннектится через интернет другая
машина (терминал-сервер с 1С). А она, понятно, тоже в домене, причем в
другом, отличном от того, в котором машина-хост с принтером. Видимо,
тоже не получится подконнектиться? Как думаешь?
> Так это "окошечко", где надо ввести логин/пароль, не предоставляет
> возможности указать домен :(. Видимо, решится только через ввод
> машины, к которой подключается принтер (не машины-хоста, к которой
> принтер уже подключен) в домен? Ну, это как бы и не страшно. Однако!
> Это же тестовые подключения. На деле через порт-маппинг на ФриБСД к
> машине-хосту с принтером будет коннектится через интернет другая
> машина (терминал-сервер с 1С). А она, понятно, тоже в домене, причем в
> другом, отличном от того, в котором машина-хост с принтером. Видимо,
> тоже не получится подконнектиться? Как думаешь?
знаешь чего попробуй...
подними на удаленной машине службу
Other network & print services / Print services for Unix (lpd)
а с клиентской машины создай подключение
add printer -> local print -> create new port -> standart tcp/ip port ->
ip address
port name
-> device type: custom -> protocol LPR
я примерно так печатаю на работе из bsd/linux на принтер canon lbp-1120,
присоединенный к машине коллеги :-)
за основу была взята вот эта статья
http://www.opennet.ru/base/sys/winprinter.txt.html (собственно, пункт 2)
на windows-машине поднят lpd for unix (стандартная служба в ХП) и все
работает.
скриншоты процесса отправлю отдельно на e-mail :-)
Saturday, March 28, 2009, 1:23:59 PM, you wrote:
[...покусано голодными мышами...]
m> Так это "окошечко", где надо ввести логин/пароль, не предоставляет
m> возможности указать домен :(. Видимо, решится только через ввод
"домен\юзер" не пробовали?
--
Best regards,
Paul Tatarenko http://tatarenko.kiev.ua
[listening coolest sound - silence ]
вот тут несколько подробнее
http://i-faq.ru/2007/09/18/pechat-iz-linux-na-windows-printer.html
потому что есть ньюансы.
вот в таком направлении можно попробовать?
т.е., это -- на сервере печати (в твоем случае -- на клиентской машине,
куда с терминала печать будет идти),а на терминале -- создание нового
псевдо-локального принтера (как описано в предыдущем сообщении и на
отправленных тебе скриншотах).
Пробовал. Забыл про это написать. Не сработало. Машина-то, на которую
я хочу этот принтер приконнектить, не в домене. Думаю, в этом дело.
Совет с ЛПР попробую завтра. По идее, должно сработать - тут никаких
виндовых технологий не используется.
Sunday, March 29, 2009, 10:00:47 PM, you wrote:
[...покусано голодными мышами...]
m> я хочу этот принтер приконнектить, не в домене. Думаю, в этом дело.
m> Совет с ЛПР попробую завтра. По идее, должно сработать - тут никаких
m> виндовых технологий не используется.
Да, вендовый домен - ещё то щасте...
> m> я хочу этот принтер приконнектить, не в домене. Думаю, в этом дело.
> m> Совет с ЛПР попробую завтра. По идее, должно сработать - тут никаких
> m> виндовых технологий не используется.
>
> Да, вендовый домен - ещё то щасте...
>
да ну прямо таки... :-)
Sunday, March 29, 2009, 11:56:01 PM, you wrote:
[...покусано голодными мышами...]
AZ> да ну прямо таки... :-)
так если б хоть прямо, а то как-то всё криво... :)
--
Best regards,
Paul Tatarenko http://www.tatarenko.kiev.ua
--
Жизнь любит всех, но некоторых в стиле садо-мазо...
[Аквариум - Рыба]
Если пароль - в окошке браузера, то проблема передачи кодировки
(utf<->win/cp).
Если - в окне логина терминала - то для ввода домена достаточно ввести
<DOMAIN>\user в поле вводе имени пользователя.
--
Viktor Kompaneyets
VK3-UANIC
Докладываю. Сделал так, как ты мне в скриншотах показал, посланных на
имейл. Т.е., установил на машине-хосте Other network & print
services / Print services for Unix (lpd), потом на своей рабочей
станции (которая виндовая, в этой же локалке, но не в домене) добавил
принтер (как в скриншотах). Я такое и ранее делал, с другими
принтерами. Драйвера подсунул те, что с принтером идут. Там есть два
типа драйверов, GDI и PCL. На машине-хосте установлены CDI. Я решил,
что и себе такие же поставлю. Имя порта получилось IP_192.168.0.xx,
название очереди дал такое же (у тебя порт и очередь называется
apple). Когда отправляешь на печать тестовую страницу с использованием
LPR - сразу в диспетчере печати вылазит ашипка, что не удалось
напечатать. Если выбрать RAW - то оно делает вид, что печатает, но при
этом их принтера ничего не вылезает, а через некоторое время опять та
же ашипка - не удалось напечатать. Настройки принтера менял всякие-
разные (на той машине, к которой принтер подключен по сети). Ничего не
происходит... Пока в растерянности :). Есть, правда, еще принтсервер
аппаратный, вот уже подумываю, чтобы его попробовать...
> Докладываю. Сделал так, как ты мне в скриншотах показал, посланных на
> имейл. Т.е., установил на машине-хосте Other network & print
> services / Print services for Unix (lpd), потом на своей рабочей
> станции (которая виндовая, в этой же локалке, но не в домене) добавил
> принтер (как в скриншотах). Я такое и ранее делал, с другими
> принтерами. Драйвера подсунул те, что с принтером идут. Там есть два
> типа драйверов, GDI и PCL. На машине-хосте установлены CDI. Я решил,
> что и себе такие же поставлю. Имя порта получилось IP_192.168.0.xx,
> название очереди дал такое же (у тебя порт и очередь называется
> apple). Когда отправляешь на печать тестовую страницу с использованием
> LPR - сразу в диспетчере печати вылазит ашипка, что не удалось
> напечатать. Если выбрать RAW - то оно делает вид, что печатает, но при
а порт 515/tcp открыл для lpd на файрволе?
ну, RAW там и не должен быть, RAW -- это когда ты принт-сервер
аппаратный присоединишь, то будет RAW, а так надо выбирать LPR.
я вот специально порылся у себя и нашел руководство, в соответствии с
которым я это все делал.
выкладываю прямо здесь (оно небольшое, общая теория выброшена)
часть 1. (с) senyk.poltava.ua
</>
Щоб наступний опис був більш зрозумілим, спробую схематично пояснити, як
ми примусимо систему Windows розуміти PostScript-файли, та друкувати їх
на “безмозгому” windows-принтері. План такий: на мережевий “фіктивний”
PostScript принтер (який ми створимо трохи пізніше”) приходить по
локальній мережі PostScript-файл, що був посланий з Linux-ПК. Принтер
без жодної зміни документу відсилає його на віртуальний порт, що буде
існувати завдяки програмі RedMon (описано теж далі по тексту, наберіться
терпіння). Віртуальний порт RedMon (наприклад, RPT1: ) передає дані
інтерпретатору мови PostScript (тобто її реалізації Ghostscript), яка в
свою чергу передає їх на реальний win-принтер для друку. Якщо Вам все
зрозуміло, можете далі не читати цей манускрипт. А для тих хто зрозумів
не дуже чітко спробую пояснити більш детально.
Отже першим кроком для налагодження друку на win-принтері буде
скачування з мережі Інтернет Ghostscript та GSView.
Знайти їх ви зможете за такою адресою:
http://www.cs.wisc.edu/~ghost/index.html
Мені до рук потрапив Ghostscript версії 5.10 (файли gs510fn1.zip,
gs510fn2.zip, gs510ini.zip та gs510w32.zip) та GSView версії 2.4 (файл
gsview24.zip). Згідно інструкції по встановленню, я розгорнув архів
GSView до тимчасової директорії і в неї скопіював 4 файла з архівами від
Ghostscript. Запустив програму інсталяції (setup.exe), яка встановила
переглядач PostScript файлів (GSView) та сам інтерпретатор Ghostscript.
У моєму випадку це були директорія c:\gstools\gs5.10 (на майбутнє,
важливо запам'ятати цю папку).
Настала черга перевірити роботу Ghostscript. Знаходимо будь-який файл з
розширенням *.PS (у форматі PostScript) та відкриваємо у переглядачі
GSView. Перевірка роботи Ghostscript через використання GSView
обов'язкова, тому що без належно встановленого Ghostscript далі буде
дуже важко.
Якщо файл на екрані виглядає належним чином, спробуємо його надрукувати.
Тут я зіштовхнувся з великою перешкодою. Після натиску на кнопку зі
зображенням принтеру, на екрані з'явилось діалогове вікно, в якому
необхідно було обрати драйвер принтеру. Як ви самі розумієте, драйвера
до Canon LBP-810 там не було. Всі спроби обрати інший наче “схожий”
драйвер закінчувались марно. Принтер не хотів нічого друкувати.
Довелось поринути у простір Інтернет та шукати відповіді на це питання.
На щастя вона не примусила себе довго чекати. Виявляється, що існує
універсальний драйвер для друку на будь-якому windows-принтері, якщо він
розуміє графічний друк. Цей драйвер називається mswinpr2. Особливостями
цього драйверу є те, що він конвертує елементи мови PostScript у виклики
Windows GDI.
Після обрання драйверу друку – mswinpr2, нарешті, з мого Canon LBP-810
з'явилась надрукована сторінка.
Якщо Ghostscript на вашому комп'ютері працює, можна переходити до
другого етапу – встановлення RedMon – утиліти, що дозволяє встановити
перенаправлення даних з порту на прикладну програму. Знайти її можна на
цьому сайті: http://www.ghostgum.com.au/
Інсталяція RedMon не повинна викликати у вас складнощів.
Встановлюємо фіктивний PostScript принтер. Наприклад, “HP LaserJet 4/4MP
PostScript”. Далі в параметрах принтеру необхідно встановити друк у
віртуальний порт RedMon. Для цього відкриваємо вікно властивостей
встановленого принтеру, та натискаємо кнопку Додати порт... . З вікна
вибору порту обираємо пункт – Redirect Monitor, та погоджуємось із
назвою RPT1:. Пам'ятайте, що всі ці маніпуляції ви повинні зробити для
нового фіктивного (HP LaserJet 4/4MP PostScript), а не для реального
(Canon LBP-810) принтеру. Забороніть також використання двостороннього
обміну даних в параметрах черги друку.
Нарешті дійшла черга до пояснення утиліті RedMon, як здійснити друк за
допомогою Ghostscript. В параметрах PostScript принтеру натискаємо
кнопку “Параметри порту ...”, у діалоговому вікні у полі введення “Enter
the program name”записуємо шлях до програми Ghostscript, в моєму випадку це
c:\gstools\gs5.10\gswin32c.exe
У наступному полі вводимо командного для запуску інтерпретатора
Ghostscript. В мене вона була такою:
-Ic:\gstools\gs5.10;c:\gstools\gs5.10\fonts -sDEVICE=mswinpr2
-sPAPERSIZE=a4 -dNOPAUSE -sOutputFile="//spool/Canon LBP-810" -
Зверніть увагу на параметр -I. Він вказує де у системі розташований
Ghostscript та шрифти до нього. Дуже важливий рядок
-sOutputFile="//spool/Canon LBP-810" – тут вказано ім'я вашого
справжнього принтеру. Якщо воно відрізняється від Canon LBP-810 вкажіть
власну назву, але літера в літеру. В кінці команди необхідно дописати
пробіл та дефіс, без них ваша команда не спрацює. Параметр
-sPAPERSIZE=a4 я додав потім, коли зрозумів, що ніяк не можу надрукувати
внизу сторінки, щось ближче до краю за 2,4 см. Якщо вас дратують
блимаючі консольні вікна під час друку встановіть параметр Run у “Hidden”.
Перевірте друк на PostScript принтері спочатку з будь-якої програми
системи Windows. Для цього у стандартному діалозі друку вкажіть Ваш
фіктивний “HP LaserJet 4/4MP PostScript”. Якщо принтер надрукує саме те,
що ви очікували, вважайте, що налагодження win-принтеру майже завершено.
Залишаться одні дрібниці: встановлення доступу до принтера з мережі,
налагодження Samba і друк з Linux комп'ютера через будь-який
PostScript-драйвер.
</>
на данном этапе уже все работает, однако при отправке задания на печать
на удаленной машине появляется окно вывода задания на печать, ожидающее
нажатия на кнопку "Ок".
необходимо его подавить.
часть 2.
</>
Why does the Print Setup dialog appear when I print to the Postscript
printer?
This dialog does not appear if you print from the command-line:
%GS_LIB%\gswin32c -dNOPAUSE -I%GS_LIB%;%GS_LIB%\fonts -sDEVICE=mswinpr2
-sOutputFile="\\spool\label" -
The dialog does appear if you put the same code into the RPT1 Port
Configuration dialog box. The reason is the code in the mswinpr2 print
driver tries to find the printer specified in the -sOutputFile option
(without the \\spool\). However, when the spooler runs under the SYSTEM
account which has different registry settings, the code in mswinpr2 uses
the Win32 GetProfileString to get the entire [Devices] in win.ini. Under
Windows NT 4.0, this section is mapped to the user profile.
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\IniFileMapping\win.ini]
"Devices"="USR:Software\\Microsoft\\Windows NT\\CurrentVersion\\Devices"
"PrinterPorts"="USR:Software\\Microsoft\\Windows
NT\\CurrentVersion\\PrinterPorts"
On my machine, the administrator account has this in the registry.
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices]
"Brother PTouchPC PS"="winspool,RPT1:"
"label"="winspool,FILE:"
When gswin32c runs under the system account, the above devices are
missing and the mswinpr2 driver thinks the devices do not exist. To
allow it to find the driver, add the following registry setting to the
default user registry.
REGEDIT4
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\Devices]
"label"="winspool,FILE:"
This information was contributed by muirp at fibersoft.com.
Back to Top
How do I disable the Cancel dialog box?
When using the mswinpr2 device with RedMon, a "Cancel" dialog box is
displayed showing progress. To disable the "Cancel" dialog box, add
-dNoCancel to the Ghostscript command line..
</>
вот в таком виде оно в данный момент и работает.
Проверил файрвол на машине-хосте. Он там вообще выключен был (не как
сервис, а просто радиокнопка стояла в положении выключено). Тем не
менее, добавл исключение - нужный порт. Не помогло :). Долго думает,
после чего в менеджере печати сообщает об ошибке.
> я вот специально порылся у себя и нашел руководство, в соответствии с
> которым я это все делал.
> выкладываю прямо здесь (оно небольшое, общая теория выброшена)
Я вот не совсем понимаю, зачем в нашем (моем) случае создавать эти
виртуальные принтеры? Это ведь пошло оттуда, что Линукс не способен
понимать какие-то принтеры, вот создавался витруальный, который он
понимает, и оттуда задание уже перенаправлялось на реальный виндовый.
Формат задания - гост-скриптовый. Новедь в моем же случае нет такого
непонимания, у меня же две винды... Нипанятна... Прошу разъяснить,
почему надо применять те линуксовые приседания. Скачать-то и поставить
всякое - нетрудно. Однако, надо ж с пониманием делать... :)
Сам себя поправлю. Вроде все ясно. Проблема на сейчас состоит в том,
что когда на машину-хост приходят какие-то задания на печать, она не
понимает, что с ними делать. Вот для этого все эти приседания с Гост-
скриптом и пр. и нужны. А то, что в мануалах указано, что задания на
печать передает линуксовая машина - то не имеет значения, в нашем
случае вместо линуксовой машины будет либо терминал-сервер (через порт-
маппинг на ФриБСД), либо же моя станция (которая не в домене).
Правильно я понимаю? :) (ну да, я тупой... есть такое)...
1. Скачал с родного сайта GhostScript и GSView. Установил. Гостскрипт
стал сюда: C:\Program Files\gs\gs8.63. Надо сказать, что, поскольку
версия отличная от описанной в руководстве, становится она в другие
каталоги и кое-что внутри выглядит не так.
2. Как написано, проверил печать из просмотрщика GSView на уже
подключенный принтер Панасоник при выбранном гостскрипт-драйвере
mswinpr2 - работает ОК.
3. Установил редиректор порта Редмон. Появился порт РПТ1:.
4. Потом добавил принтер HP LaserJet 4L/4ML PostScript, установил для
него этот порт. Обмен данными в двух направлениях тут даже не
включается. Установил такие настройки порта:
Redirect this port to the program: C:\Program Files\gs\gs8.63\bin
\gswin32c.exe
Arguments for this program are: -IC:\Program Files\gs\gs8.63\bin;C:
\Program Files\gs\gs8.63\lib -sDEVICE=mswinpr2 -sPAPERSIZE=a4 -
dNOPAUSE -sOutputFile="//spool/Panasonic KX-MB763RU" -
Output: выбрал Program handles output (можно еще выбрать: Prompt to
filename / Copy stdout to printer / Copy temporary file to printer /
Copy pipe to printer)
Printer: неактивный (если изменить Output на значение, где есть слово
"принтер", то можно выбрать один из трех подключенных принтеров,
исключая только что добавленный HP LaserJet 4L/4ML PostScript).
Run: normal
Ну и при попытке напечатать на этот фальшивый принтер Диспетчер печати
аварийно завершается, при этом если его запустить, вылазит та задача
на печать, которая его аварийно завершила, и он опять аварийно
завершается - и так по кругу. Из-за этого в данный момент нельзя уже
печатать на обычный принтер :). Еле накликал, чтобы удалить задачу из
очереди печати :).
Пока в растеряности... Хочется йобнуть этот принтер на пол. Тем более,
что мы его не покупали - нам его навязали из UMC как бонус - а мы
хотели его не брать, но они нас убедили, что "он хороший" :).
On 30 мар, 15:15, Andrey Zaborovsky
<andrey.zaborov...@yahoo.com.del.it> wrote:
> Після обрання драйверу друку - mswinpr2, нарешті, з мого Canon LBP-810
> з'явилась надрукована сторінка.
> Якщо Ghostscript на вашому комп'ютері працює, можна переходити до
> другого етапу - встановлення RedMon - утиліти, що дозволяє встановити
> перенаправлення даних з порту на прикладну програму. Знайти її можна на
> цьому сайті:http://www.ghostgum.com.au/
> Інсталяція RedMon не повинна викликати у вас складнощів.
> Встановлюємо фіктивний PostScript принтер. Наприклад, "HP LaserJet 4/4MP
> PostScript". Далі в параметрах принтеру необхідно встановити друк у
> віртуальний порт RedMon. Для цього відкриваємо вікно властивостей
> встановленого принтеру, та натискаємо кнопку Додати порт... . З вікна
> вибору порту обираємо пункт - Redirect Monitor, та погоджуємось із
> назвою RPT1:. Пам'ятайте, що всі ці маніпуляції ви повинні зробити для
> нового фіктивного (HP LaserJet 4/4MP PostScript), а не для реального
> (Canon LBP-810) принтеру. Забороніть також використання двостороннього
> обміну даних в параметрах черги друку.
> Нарешті дійшла черга до пояснення утиліті RedMon, як здійснити друк за
> допомогою Ghostscript. В параметрах PostScript принтеру натискаємо
> кнопку "Параметри порту ...", у діалоговому вікні у полі введення "Enter
> the program name"записуємо шлях до програми Ghostscript, в моєму випадку це
> c:\gstools\gs5.10\gswin32c.exe
> У наступному полі вводимо командного для запуску інтерпретатора
> Ghostscript. В мене вона була такою:
> -Ic:\gstools\gs5.10;c:\gstools\gs5.10\fonts -sDEVICE=mswinpr2
> -sPAPERSIZE=a4 -dNOPAUSE -sOutputFile="//spool/Canon LBP-810" -
> Зверніть увагу на параметр -I. Він вказує де у системі розташований
> Ghostscript та шрифти до нього. Дуже важливий рядок
> -sOutputFile="//spool/Canon LBP-810" - тут вказано ім'я вашого
я вот не помню точно, что там у меня стоит, сейчас посмотреть негде --
та машина выключена.
завтра посмотрю, сделаю скриншот.
если не ошибаюсь, там стоит дефолтное значение, то, что redmon выдает по
умолчанию при добавлении нового RPTn
>
> Printer: неактивный (если изменить Output на значение, где есть слово
> "принтер", то можно выбрать один из трех подключенных принтеров,
> исключая только что добавленный HP LaserJet 4L/4ML PostScript).
а здесь д.б. принтер выбран (тот же самый, что и указан в командной
строке выше).
опять же, завтра уточню.
>
> Run: normal
>
> Ну и при попытке напечатать на этот фальшивый принтер Диспетчер печати
> аварийно завершается, при этом если его запустить, вылазит та задача
> на печать, которая его аварийно завершила, и он опять аварийно
> завершается - и так по кругу. Из-за этого в данный момент нельзя уже
> печатать на обычный принтер :). Еле накликал, чтобы удалить задачу из
> очереди печати :).
>
> Пока в растеряности... Хочется йобнуть этот принтер на пол. Тем более,
> что мы его не покупали - нам его навязали из UMC как бонус - а мы
> хотели его не брать, но они нас убедили, что "он хороший" :).
панасоник КХ?
это мультифункциональное устройство ака принтер\копир\факс в одном флаконе?
а оно умеет через принт-сервер работать?
погуглил -- вроде как работает он с принт-серверами.
почему бы не использовать такой вариант?
> панасоник КХ?
> это мультифункциональное устройство ака принтер\копир\факс в одном флаконе?
> а оно умеет через принт-сервер работать?
> погуглил -- вроде как работает он с принт-серверами.
> почему бы не использовать такой вариант?
походу вот что я еще нашел
почти то же самое, но несколько иным способом.
http://mesh.dl.sourceforge.net/sourceforge/rawprintserver/RawPrintServer100.zip
(внутри -- исходники и бинарные сборки под win32)
а вот что это, собственно говоря, такое
http://www.opennet.ru/openforum/vsluhforumID1/37540.html
только во второй ссылке речь идет про связку linux->windows, а при
помощи бинарников из первого архива можно сделать и связку windows->windows.
Это все хорошо, когда клиент ходит не из-за NATа.
>> http://www.opennet.ru/openforum/vsluhforumID1/37540.html
>> только во второй ссылке речь идет про связку linux->windows, а при
>> помощи бинарников из первого архива можно сделать и связку
>> windows->windows.
кстати, я проверил -- все нормально работает.
в качестве эксперимента я "опубликовал" не настоящий, а тот самый
виртуальный принтер, который был создан в соответствии с предыдущим
описанием (виртуальный postscript-принтер с редиректом на "настоящий"
canon-1120)
т.е. примерно вот так:
local network -> 192.168.0.30:9100 --> aplle(pseudo postcript) --> RPT1
--> LPT1(canon-1120)
все работает.
тестовая страница распечатана без проблем.
> Это все хорошо, когда клиент ходит не из-за NATа.
не на чем попробовать в данный момент.
а если использовать портмаппинг?
Наверняка поможет.
И vpn поможет...
А вот простого решения по подключению "кого попало" с любы принтером к
TS похоже таки нету... :-(
только что же подключил к ТС "кого попало" и распечатал оттуда на "кого
попало" 3 тестовых страницы из виндовз.
потом подключил свою машину (opensuse 10.3) к этому же
(дважды)псевдо-принтеру.
распечатал 2 страницы из капса.
все прекрасно.
Я не в том смысле. :-)
Хочу чтобы любой первый попавшийся клиент (конечно при знании параметров
доступа), мог подключится к TS и печатать на свой принтер.
Готов долго шаманить предварительно, чтобы потом все работало автоматом,
но не хочу шаманить отдельно для каждого клиента.
> Готов долго шаманить предварительно, чтобы потом все работало автоматом,
> но не хочу шаманить отдельно для каждого клиента.
так оно обычно для большинства случаев работает посредством родных
средств винды.
а для единичных тяжелых случаев можно и пошаманить.
ну и вообще, практика показывает, что в таких случаях лучше не покупать
вские win-принтеры и МФУ, а ставить нормальные полноценные принтеры и
все будет нормально.
Моя практика показывает, что оно как раз для единичных случаев
срабатывает. :-(
> ну и вообще, практика показывает, что в таких случаях лучше не покупать
> вские win-принтеры и МФУ, а ставить нормальные полноценные принтеры и
> все будет нормально.
Обычно принтер покупают не думая заранее. :-(
Таким способом - заработало (по крайней мере, в локальной сети). Слава
Заборовскому! Однако, как сервис становиться не хочет - т.е.,
становится, но не запускается, говорит, каких-то файлов не хватает.
Работает как в режиме STANDALONE и только под админом. Я все это
положил в каталог c:\RawPrintServer, и там создал батничек start.bat:
@c:\rawprintserver\rawprintserver STANDALONE "Panasonic ...". Вот если
под админом зайти и его запустить - все ОК. А если под юзером (как
обычно там и работают) - то батничек запускается, окошко висит, а
печать не идет. Собственно, вопрос: как сделать так, чтобы "оно"
автоматически при загрузке винды запускалось с правами админа, при
том, что залогинивается обычный пользователь.
Нашел :). Надо установить пакет AutoIt 3 (http://www.autoitscript.com/
autoit3/), потом создать там скриптик из одной строчки [ RunAs
("Admin", "DOMAIN", "Admin-password", 4, 'C:\RawPrintServer
\RawPrintServer.exe STANDALONE "Panasonic KX-MB763RU"') ], потом
скомпилировать его в Zaebalo!.exe и вставить в автозагрузку у юзера.
При загрузке он висит аццким чОрным окном, которое надо свернуть - но
теперь печатает нормально по локальной сети. Осталось сделать порт-
маппинг прикрутить этого демона на терминал-сервере.
m> Таким способом - заработало (по крайней мере, в локальной сети). Слава
m> Заборовскому! Однако, как сервис становиться не хочет - т.е.,
m> становится, но не запускается, говорит, каких-то файлов не хватает.
m> Работает как в режиме STANDALONE и только под админом. Я все это
m> положил в каталог c:\RawPrintServer, и там создал батничек start.bat:
@c:\rawprintserver\rawprintserver STANDALONE
m> "Panasonic ...". Вот если под админом зайти и его запустить - все ОК. А
m> если под юзером (как обычно там и работают) - то батничек запускается,
m> окошко висит, а печать не идет. Собственно, вопрос: как сделать так,
m> чтобы "оно" автоматически при загрузке винды запускалось с правами
m> админа, при том, что залогинивается обычный пользователь.
Для того, чтобы из-под юзера запустить что-то с правами админа, нужно знать
логин и пароль админа. Готовых программ не знаю, но для человека, с
элементарными знаниями С/Дельфи в сети найдётся куча готовых кодов. Там все
банально: заполнить поля структур, вызвать функцию и посмотреть результат,
думаю, даже из под Васика получится. Гуглить нужно по слову
CreateProcessWithLogonW.
--
With best regards, Дмитрий Кузьменко. E-mail: dmy...@adioz.net
Это очень сложно :). Я уже давно понял, что все уже кем-то и давно
написано - надо только уметь найти. Надо было гуглить по по словам
"bat с правами админа" на forum.oszone.net - оттуда и получена ссылка
на AutoIt 3.
> Таким способом - заработало (по крайней мере, в локальной сети). Слава
> Заборовскому! Однако, как сервис становиться не хочет - т.е.,
странно.
у меня заработало и в нормальном режиме (именно как сервис, а не
standalone)
ты ж ридми читал? все делал по написанному?
я вот еще что заметил -- у меня оно не желало работать, пока я
псевдопринтер "Apple LaserWriter NT 4.47" (postscript) не переименовал в
просто "apple".
в таком виде чудно работает.
еще можно попробовать первый запуск с правами админа, а потом -- под
юзером (я таким образом внешние компоненты в 1С регистрирую у новых
юзеров: первый раз в юзерском сеансе приложение запускается через RunAs
от имени админа, регистрируется, потом все нормально).
> становится, но не запускается, говорит, каких-то файлов не хватает.
> Работает как в режиме STANDALONE и только под админом. Я все это
> положил в каталог c:\RawPrintServer, и там создал батничек start.bat:
> @c:\rawprintserver\rawprintserver STANDALONE "Panasonic ...". Вот если
> под админом зайти и его запустить - все ОК. А если под юзером (как
> обычно там и работают) - то батничек запускается, окошко висит, а
> печать не идет. Собственно, вопрос: как сделать так, чтобы "оно"
> автоматически при загрузке винды запускалось с правами админа, при
> том, что залогинивается обычный пользователь.
приложение чудно запускается (и ставится) как сервис, но можно, если уже
так -- попробовать заюзать спец.тулзу SRVANY.EXE (в ресурските НТёвом
была раньше -- позволяла _любой_ апликейшен запускать как сервис -- я ей
хасп-серверы запускал, которые не желали становиться сервисами).
AZ> приложение чудно запускается (и ставится) как сервис, но можно, если
AZ> уже так -- попробовать заюзать спец.тулзу SRVANY.EXE (в ресурските
AZ> НТёвом была раньше -- позволяла _любой_ апликейшен запускать как сервис
AZ> -- я ей хасп-серверы запускал, которые не желали становиться
AZ> сервисами).
Любой аппликейшн полноценным сервисом не станет. Ибо для того, чтобы стать
им, нужно как минимум обратиться к диспетчеру сервисов через
StartServiceCtrlDispatcher и сообщить ему адрес таблицы, в которой кроме
имени сервиса, отображаемого имени и прочих мелочей есть самое главное, а
именно, адрес ServiceProc, т.е. той процедуры, которая собственно и
реализует функционал сервиса.
Кроме того, я совсем не уверен, что сервис может быть запущен из-под
обычного юзера без танцев с политиками.
> Любой аппликейшн полноценным сервисом не станет. Ибо для того, чтобы
ну вобщем да, согласен.
может и не совсем любой, но многие.
тот, который мне был нужен -- становился :-)
> стать им, нужно как минимум обратиться к диспетчеру сервисов через
> StartServiceCtrlDispatcher и сообщить ему адрес таблицы, в которой кроме
> имени сервиса, отображаемого имени и прочих мелочей есть самое главное,
> а именно, адрес ServiceProc, т.е. той процедуры, которая собственно и
> реализует функционал сервиса.
>
> Кроме того, я совсем не уверен, что сервис может быть запущен из-под
> обычного юзера без танцев с политиками.
сервер хорошо бы запустить один раз (правда, нужно тестировать что будет
с доступностью принтера, если юзер отключится, а потом снова
подключится, как бы после обрыва связи например...)
> AZ> НТёвом была раньше -- позволяла _любой_ апликейшен запускать как сервис
> AZ> -- я ей хасп-серверы запускал, которые не желали становиться
> AZ> сервисами).
>
> Любой аппликейшн полноценным сервисом не станет. Ибо для того, чтобы
станет. та ресурскитовая утилита инджектит в процесс дллку, которая
экспортит те символы, о которых вы пишете ниже, и врапит винмейн или црт
мейн вызывая registerServiceProcess...
> стать им, нужно как минимум обратиться к диспетчеру сервисов через
> StartServiceCtrlDispatcher и сообщить ему адрес таблицы, в которой кроме
> имени сервиса, отображаемого имени и прочих мелочей есть самое главное,
> а именно, адрес ServiceProc, т.е. той процедуры, которая собственно и
> реализует функционал сервиса.
респект, выпал в осадок.
> станет. та ресурскитовая утилита инджектит в процесс дллку, которая
> экспортит те символы, о которых вы пишете ниже, и врапит винмейн или црт
> мейн вызывая registerServiceProcess...
был у меня когда-то эмулятор хаспа (одна из разновидностей известной
"сабли", TCPServer.exe)
ни в какую не становился сервисом, вызывал BSOD.
ну вот оно становится сервисом и уже от системы вызывает бсод. все
логично :)
С восхищением читаю тред с самого начала. Прямо какая-то эпическая сага
получилась. :D
да, но как апликейшн он чудно исполняет (в т.ч. и в вайне, правда только
под рутом, что некошерно.)
http://andyz.t35.com/jpeg/snapshot1.jpg
ухты, в ютюбе появился линк на твиттер
> ухты, в ютюбе появился линк на твиттер
и что это нам дает? :-)
Ну естественно. Как же еще? :) Тем более там ридми на 1 страницу. Ну,
мало ли - у тебя вот заработало, а на этом компе нет. Что учитывая
криворукость (даже по сравнению со мной!) местного одмина - не очень и
удивительно.
> я вот еще что заметил -- у меня оно не желало работать, пока я
> псевдопринтер "Apple LaserWriter NT 4.47" (postscript) не переименовал в
> просто "apple".
> в таком виде чудно работает.
> еще можно попробовать первый запуск с правами админа, а потом -- под
> юзером (я таким образом внешние компоненты в 1С регистрирую у новых
> юзеров: первый раз в юзерском сеансе приложение запускается через RunAs
> от имени админа, регистрируется, потом все нормально).
Я уже этот вопрос решил немного по-другому :).
,> приложение чудно запускается (и ставится) как сервис, но можно,
если уже
> так -- попробовать заюзать спец.тулзу SRVANY.EXE (в ресурските НТёвом
> была раньше -- позволяла _любой_ апликейшен запускать как сервис -- я ей
> хасп-серверы запускал, которые не желали становиться сервисами).
Это возьму на заметку. Но там человек так хочет из терминала печатать
на этот МФУ, что будет мириться со всем, что скажут. В частности,
свернутое окошко уж точно не помешает :).
Думаю, что в таком виде, как сейчас (когда как аппликейшн работает) -
все д.б. ОК.
А за шо вы этот Т35 любите? Чем он хорошо? (На сайт заходил, читал,
мол, мы чуть ли не раньше интернета появились и все такое.)
> А за шо вы этот Т35 любите? Чем он хорошо? (На сайт заходил, читал,
> мол, мы чуть ли не раньше интернета появились и все такое.)
да х.з.
что первое под руку подвернулось :-)
вот как почта была когда-то такая фриварная @usa.net, ну так и это :-)
> Это возьму на заметку. Но там человек так хочет из терминала печатать
> на этот МФУ, что будет мириться со всем, что скажут. В частности,
> свернутое окошко уж точно не помешает :).
у меня почти аналогичная ситуация с печатью на принтер посредством
метода №1 (про postscript-принтер) -- у коллеги на соседней машине,
через которую от меня печать идет, во время печати окошко выскакивает и
сворачивается -- он уже привык :-)
--
isa mozes the katsman you said always and forever
isa at isa dot dp dot ua such a long and lonely time
ICQ 397543186 no opportunity necessary no experience neeDeD
Как научусь - немедленно сообщу, да.
ну мы тут уже совместными усилиями нашли некое решение, которое Николая,
вроде бы устроило :-)