Форум: "WinAPI";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
ВнизПеренаправить на порт Найти похожие ветки
← →
eselista (2005-08-27 00:16) [0]У кого есть какие идеи или может быть точные решения такой проблемы:
Имеем сетевой принтер (например НР2200, киосера или херох). Есть ИП адрес (пример 169,254,3,15) и порт (пример 9100).
Как привязать его к порту? Например к LPT1, чтобы можно было печатать документы, отправляя их как на локальный принтер?
← →
isasa © (2005-08-27 11:27) [1]Сетевой принтер или локальный, его надо устанавливать в системе, и привязавать к конкретному порту. Если порта нет - добавляем(в данном случае - сетевой).
Драйвера сетевых принтеров обычно запрашивают протокол и (если TCP/IP) IP адрес(т.е. добавляют сетевой порт сами).
IP адрес сетевому принтеру назначаем с консоли самого принтера автономно.
Привязывать LPT куда-то ??????????????? зачем?
← →
tesseract © (2005-08-27 11:42) [2]>>Например к LPT1, чтобы можно было печатать документы, отправляя их как на локальный принтер?
Из чего печатаем? в Windows 98/NT/2k/XP имеется PortMapper который позволяет это сделать. Такая же фича есть в Novell Client.
← →
eselista (2005-08-29 13:29) [3]to isasa ©
Чтобы назначить порт для сетевого принтера надо, чтобы у него (у принтера) было netbios имя и имя порта (например: \\hp\d1prn).
Такие принтера видно через сетевое окружение.
Здесь имеем имя принтера hp имя порта d1prn. Что касаемо сетевых принтеров печать осуществляется через их родные TCP порты. К примеру принтер Xerox 4400, 4250, 3450 или печать на HP2200 сетевой. И в системе устанавливается свой порт типа PhaserPort с параметрами IP адрес и номер порта LPR (9100 к примеру). Вот меня и интересует как такой принтер можно привязать к локальному порту в системе. Печать осуществляется под управлением Windows 2000.
net use для таких принтеров не работает. Пожалуйста, предлагаем конструктивные идеи, которые проверено работали, а не простенькие решения для системных администраторов мелких контор. :))
← →
tesseract © (2005-08-29 15:25) [4]Значит любим гемморой ОК.
Пишем драйвер принтера, данные которые на него идут и перенаправляем их на другой порт. Только впорос НА ФИГА ?????? Можно подумать печать на удалённый принтер отличается от печати на локальный.
Кое-какая информация доступна на Wasm.ru и RSDN.ru
← →
eselista (2005-08-29 21:55) [5]to tesseract ©
Можно подумать печать на удалённый принтер отличается от печати на локальный.
А ты попробуй из окна эмуляции доса че нибудь напечатай на такой сетевой принтер, а потом раскажешь чем отличается. :)
С драйвером принтера наверно может и можно, но для меня это сложно. :( Вот такой каламбурчик.
← →
Slym © (2005-08-30 04:15) [6]Из окна "доса" легко я шрифты заливаю из "ДОСА"
Переделать в - PrintIt "print me" легко и вызывать из др программы или длл наваятьprogram RuFonts;
{$R "files.res" "files.rc"}
uses
Classes,
Sockets;
var
s:TResourceStream;
TCP:TTcpClient;
begin
TCP:=TTcpClient.Create(nil);
try
TCP.RemoteHost:="192.168.1.10";
TCP.RemotePort:="9100";
s:=TResourceStream.Create(0,"FNT","FONTS");
try
TCP.Connect;
TCP.SendStream(s);
TCP.Disconnect;
finally
s.Free;
end;
s:=TResourceStream.Create(0,"CP","FONTS");
try
TCP.Connect;
TCP.SendStream(s);
TCP.Disconnect;
finally
s.Free;
end;
finally
TCP.Free;
end;
end.
← →
tesseract © (2005-08-30 13:34) [7]>>Из окна "доса" легко я шрифты заливаю из "ДОСА"
Из окна DOS такой не заработает. Только из консоли.
← →
ANB © (2005-08-30 13:46) [8]
> eselista (29.08.05 13:29) [3]
- глупый вопрос - как ты собираешься печатать из DOS программы, которая шлет на принтерный порт текст, на нерусифицированном принтере, например струйном ?
Да и не все лазерные поддерживают загрузку русских шрифтов, а те, которые поддерживают, после выключения/включения их сбрасывают.
Нужно уточнить задачу - для чего это нужно.
← →
eselista (2005-08-30 23:47) [9]to ANB ©
Про шрифты речи не идет. Принтера полностью русифицированы. Если мне надо изменить шрифт, размер, кол-во строк или выбрать положение листа - альбом / портрет, то я использую свою программу совместно с PCL скриптами.
Для печати из программы, которая работает в режиме эмуляции MS-DOS я не могу отправлять данные на печать для этих принтеров.
Например:
если я имею сетевой принтер с нетбиос именем \\print\ttt, то в окне эмуляции ms-dos я на него смогу что-то напечатать, если привяжу его к локальному порту - net use lpt1: \\print\ttt ......
вот теперь я смогу напечатать на этот принтер даже подав команду copy con lpt1
НО! Проблема с сетевыми принтерами, которые не имеют имени, а есть только ип адрес и порт. Они к локальному порту в системе не привязываются никак. Ну надеюсь что объяснил более или менее подробно.
to Slym ©
Мне нужен выход из создавшегося положения такой, чтобы некоторая моя утилита могла-бы сидеть в памяти и при печати на порт к примеру LPT1 перенаправлять все данные на сетевой принтер.
Ну или если есть уже где-то такое решение.
← →
Anatoly Podgoretsky © (2005-08-30 23:55) [10]eselista (27.08.05 00:16)
Зачем? Это имеет смысл только для старых ДОС программ.
Привязка простая, делается в свойствах принтера. В разных ОС по разному. Или же с помощью консольной команды NET SET
← →
Slym © (2005-08-31 04:55) [11]eselista (30.08.05 23:47) [9]
to Slym ©
Мне нужен выход из создавшегося положения такой, чтобы некоторая моя утилита могла-бы сидеть в памяти и при печати на порт к примеру LPT1 перенаправлять все данные на сетевой принтер.
Ну или если есть уже где-то такое решение.
Тут сложнее... LPT юзается понопольно и задания управляются спулером. Сетевое устройство открыто для записи для всех. Тупым перехватом и пересылкой не обойтись.
(типа "спулер" отлавливать конец страницы и потом только посылать на принтер)
В инете туева хуча исходников драйверов LPT приляпать туда сокет никакого (а может и нет) труда не составит
← →
Slym © (2005-08-31 04:56) [12]tesseract © (30.08.05 13:34) [7]
Кавычки для того и стоять, чтобы отобразить саркастичный смысл заключеного в них текста.
← →
Slym © (2005-08-31 04:59) [13]Кстати... Делаешь принт сервер:
Ставишь нормальный родной драйвер принтера на "сервер", расшариваень его и пользуешь "net use"
← →
isasa © (2005-08-31 11:32) [14]В сетевых принтерах(с консооли принтера предусмотрено задание имени принтера). Попробуй внести прямую и обратную запись для принтера на сервере DNS(или WINS) домена. И ищи в браузере сети.
← →
isasa © (2005-08-31 11:34) [15]Slym © (31.08.05 04:59) [13]
Зачем для сетевого принтера принтсервер, чтобы получить трафик 20KB/s ? Изврат.
← →
deamon_t (2005-08-31 13:52) [16]Видел я когдато программу, она правда вроде для печати в виндоусе из программ доса была. В ней просто ассоциировался LPT с каким нибудь принтером, сетевым, либо usb... она перехватывала данные и печатала. Название тока я не помню звиняй. Если это подходит.
← →
eselista (2005-09-01 01:22) [17]to Anatoly Podgoretsky © (30.08.05 23:55) [10]
это что ещё за net set? Не слышал о таком. Поподробнее, пожалуйста, если можно. (W2K)
to Slym © (31.08.05 04:55) [11]
насчёт приляпать к порту сокет идея интересная, но возникает много других вопросов. Впрочем я пожалуй буду работать все-таки в этом направлении. :)
to Slym © (31.08.05 04:59) [13]
принт-сервер конечно простой выход из положения (и геммороидальные шишки не напрягаются), но это ещё одна розетка 220 + торчалка дополнительная сзади принтера + глюки и ограничения самого принт-сервера. Впрочем закажу пожалуй ящик и поставлю в сейф на всякий случай. :)
to isasa © (31.08.05 11:32) [14]
есть такая фича у меня только в одном принтере - kiocera, а х4400 у меня больше полусотни и в них имени не задашь - я там и в меню и в его веб сервере облазил усе. :) И в домене пингуются, а как звать не признаются и не опознаются. :)
to deamon_t
Есть у меня похожая прога, но работает она почему-то только с НР2200 сетевым или любым USB-принтером, а с остальными ну никак.
Вообщем всем спасибо за поддержку! Тема не закрыта и если кому попадется явное решение, буду признателен, но не более того. :)))
← →
eselista (2005-09-02 23:33) [18]Принт-сервер - тупиковый вариант, т.к. сразу же отпадает возможность двухсторонней печати из вордов. :(
← →
tesseract © (2005-09-03 18:59) [19]
> Принт-сервер - тупиковый вариант, т.к. сразу же отпадает
> возможность двухсторонней печати из вордов. :(
А у нас ворды под ДОС?????? Ни один уважающей себя принтер через lpt так печатать не будет. Чем тебя portMapper не радует?
← →
eselista (2005-09-04 01:02) [20]to tesseract © (03.09.05 18:59) [19]
Я имею в виду неуважающие себя принтера, которые печатают с любых своих портов (LPT, USB, LAN) и двухсторонне и даже односторонне. :)
Ворды у нас под виндоз :). А некоторые проги работаю в окне доса. ОК? Мою проблему смотри выше в осуждении.
А что подразумевается под portMapper? Поконкретнее пожалуйста, если можно.
← →
Anatoly Podgoretsky © (2005-09-04 09:10) [21]eselista (29.08.05 13:29) [3]
Не обязательно, испортил всех LanMan
eselista (01.09.05 01:22) [17]
net use имелся в виду, естественно это только для LanMan. Программный эквивалент WNetAddConnection2
← →
Плохиш © (2005-09-04 11:21) [22]
> eselista (01.09.05 01:22) [17]
> to Anatoly Podgoretsky © (30.08.05 23:55) [10]
> это что ещё за net set? Не слышал о таком. Поподробнее,
> пожалуйста, если можно.
Вашей конторе пора нанять администратора сети.
PS. Вопрос явно для "Потрепаться"
← →
eselista (2005-09-05 23:33) [23]У меня назрела идея решения. Имеется ИП принтер. Ставим ещё один фиктивный принтер с теми же дровами, что и у IP принтера на порт LPT1 например. Далее при печати на LPT перекидываем спул на принтер ИП. В связи с этим у меня вопросы:
- кто знает каким образом организована подготовка документа для печати в виндах? (для информации)
- как можно спул отсечь и перекинуть для другого принтера?
to Плохиш © (04.09.05 11:21) [22]
Вот как раз таких плохишей и их пустые мессаги и нужно в раздел потрепаться. Чё мозги трепешь, если по теме нет ничего? А администратор сети к твоему сведению это не тоже самое, что системный администратор. :) Ты лучше-бы по моей теме, что-нибудь порекомендовал.
← →
isasa © (2005-09-06 11:28) [24]>его веб сервере облазил усе.
Стоп! А веб грузится как?
По IP?
http://<IP принтера>, или все-таки имя.
← →
eselista (2005-09-06 11:38) [25]to isasa © (06.09.05 11:28) [24]
конечно по ИП. А ты думал www.mirosoft.com? :)
← →
isasa © (2005-09-06 11:53) [26]А что говорит
nslookup <IP принтера>
и
ping -a <IP принтера>
← →
isasa © (2005-09-06 21:29) [27]Сейчас занимаюсь такой-же дребеденью, только на HP4350n и hp4300dtn.
Имя должно быть, и присваивается с консоли принтера - ищи.
Например, перечень полей сетевых настроек для 4350
Host name - оно,
IP Address
Subnet mask
Gateway
Config by
DHCp server
TFTP server
Config file
Domain name
Primary DNS server
Secondary DNS server
WINS server - даже этот
Web jet admin URL
← →
isasa © (2005-09-06 21:42) [28]Сейчас занимаюсь такой-же дребеденью, только на HP4350n и hp4300dtn.
Имя должно быть, и присваивается с консоли принтера - ищи.
Например, перечень полей сетевых настроек для 4350
Host name - оно,
IP Address
Subnet mask
Gateway
Config by
DHCp server
TFTP server
Config file
Domain name
Primary DNS server
Secondary DNS server
WINS server - даже этот
Web jet admin URL
← →
isasa © (2005-09-06 21:45) [29]Сорри за двойную посылку. Сетевые накладки(прокси).
← →
eselista (2005-09-06 23:30) [30]to isasa © (06.09.05 21:29) [27][28][26]
Какой настойчивый. :) Говорю-же нет там ничего! Точно!
- кто знает каким образом организована подготовка документа для печати в виндах? (для информации)
- как можно спул отсечь и перекинуть для другого принтера?
← →
eselista (2005-09-07 00:31) [31]isasa ©
Если этим же занимаешься могу прислать свой НЗ с краткими пояснениями - может подойдет тебе что.
← →
tesseract © (2005-09-10 11:36) [32]>>- кто знает каким образом организована подготовка документа для печати в виндах? (для информации)
Была обратная задача - импортировать из винды в dos.
Решалась так - DOS программа писала файл в который винодвая часть писала текст. DOS потом считывала файл :-)
Можешь попробовать обратный вариант. Из DOS программы печатаем в файл, из Винды его обнаруживаем, обрабатываем, и на принтер.
← →
eselista (2005-09-22 20:17) [33]Вообщем в 2000 проблема решилась 2 способами:
1. Объединяем принтера в пул. Один сетевой другой ЛПТ. Все. При печати на порт печатает на сетевой.
2. Нарыл утилиту. Писано в VС++. Позволяет перенаправлять. 32 кБайт. В 2К без вопросов, но в 98 глючит - создает огромное количество документов в очереди в 0 кБайт и вылетает с ошибкой.
Все тема закрыта. Решения здесь под АПИ видимо никто не знает.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.093 c