Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
2-1130956076
floxi
2005-11-02 21:27
2005.11.20
Умножение матриц


9-1120298880
Мелкий
2005-07-02 14:08
2005.11.20
Разногласия в единицах измерения в DirectX


14-1130435773
Hello!
2005-10-27 21:56
2005.11.20
Как создать инсталяционный файл?


2-1131107056
Eksell
2005-11-04 15:24
2005.11.20
Kak vydernuti resurs iz programmy?


14-1130409778
_xroot
2005-10-27 14:42
2005.11.20
Указатель на папку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский