Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перенаправить на порт [D5, D7]


Страницы:   1 2

eselista ©   (2005-08-27 00:16:00) 

У кого есть какие идеи или может быть точные решения такой проблемы:
Имеем сетевой принтер (например НР2200, киосера или херох). Есть ИП адрес (пример 169,254,3,15) и порт (пример 9100).
Как привязать его к порту? Например к LPT1, чтобы можно было печатать документы, отправляя их как на локальный принтер?


Slym   (2005-08-31 04:59:00) [21]

Кстати... Делаешь принт сервер:
Ставишь нормальный родной драйвер принтера на "сервер", расшариваень его и пользуешь "net use"


Slym   (2005-08-31 04:56:00) [22]

tesseract ©   (30.08.05 13:34) [7]
Кавычки для того и стоять, чтобы отобразить саркастичный смысл заключеного в них текста.


Slym   (2005-08-31 04:55:00) [23]

eselista   (30.08.05 23:47) [9]
to Slym ©
Мне нужен выход из создавшегося положения такой, чтобы некоторая моя утилита могла-бы сидеть в памяти и при печати на порт к примеру LPT1 перенаправлять все данные на сетевой принтер.
Ну или если есть уже где-то такое решение.

Тут сложнее... LPT юзается понопольно и задания управляются спулером. Сетевое устройство открыто для записи для всех. Тупым перехватом и пересылкой не обойтись.
(типа "спулер" отлавливать конец страницы и потом только посылать на принтер)
В инете туева хуча исходников драйверов LPT приляпать туда сокет никакого (а может и нет) труда не составит


Anatoly Podgoretsky   (2005-08-30 23:55:00) [24]

eselista   (27.08.05 00:16)  
Зачем? Это имеет смысл только для старых ДОС программ.
Привязка простая, делается в свойствах принтера. В разных ОС по разному. Или же с помощью консольной команды NET SET


eselista   (2005-08-30 23:47:00) [25]

to ANB ©
Про шрифты речи не идет. Принтера полностью русифицированы. Если мне надо изменить шрифт, размер, кол-во строк или выбрать положение листа - альбом / портрет, то я использую свою программу совместно с PCL скриптами.
Для печати из программы, которая работает в режиме эмуляции MS-DOS я не могу отправлять данные на печать для этих принтеров.
Например:
если я имею сетевой принтер с нетбиос именем \\print\ttt, то в окне эмуляции ms-dos я на него смогу что-то напечатать, если привяжу его к локальному порту - net use lpt1: \\print\ttt ......
вот теперь я смогу напечатать на этот принтер даже подав команду copy con lpt1
НО! Проблема с сетевыми принтерами, которые не имеют имени, а есть только ип адрес и порт. Они к локальному порту в системе не привязываются никак. Ну надеюсь что объяснил более или менее подробно.

to Slym ©
Мне нужен выход из создавшегося положения такой, чтобы некоторая моя утилита могла-бы сидеть в памяти и при печати на порт к примеру LPT1 перенаправлять все данные на сетевой принтер.
Ну или если есть уже где-то такое решение.


ANB   (2005-08-30 13:46:00) [26]


> eselista   (29.08.05 13:29) [3]
- глупый вопрос - как ты собираешься печатать из DOS программы, которая шлет на принтерный порт текст, на нерусифицированном принтере, например струйном ?
Да и не все лазерные поддерживают загрузку русских шрифтов, а те, которые поддерживают, после выключения/включения их сбрасывают.
Нужно уточнить задачу - для чего это нужно.


tesseract   (2005-08-30 13:34:00) [27]

>>Из окна "доса" легко я шрифты заливаю из "ДОСА"

Из окна DOS такой не заработает. Только из консоли.


Slym   (2005-08-30 04:15:00) [28]

Из окна "доса" легко я шрифты заливаю из "ДОСА"
Переделать в - 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.


eselista   (2005-08-29 21:55:00) [29]

to tesseract ©
Можно подумать печать на удалённый принтер отличается от печати на локальный.

А ты попробуй из окна эмуляции доса че нибудь напечатай на такой сетевой принтер, а потом раскажешь чем отличается. :)

С драйвером принтера наверно может и можно, но для меня это сложно. :( Вот такой каламбурчик.


tesseract   (2005-08-29 15:25:00) [30]

Значит любим гемморой ОК.

Пишем драйвер принтера, данные которые на него идут и перенаправляем их на другой порт. Только впорос НА ФИГА ?????? Можно подумать печать на удалённый принтер отличается от печати на локальный.

Кое-какая информация доступна на Wasm.ru и RSDN.ru


eselista   (2005-08-29 13:29:00) [31]

to isasa ©
Чтобы назначить порт для сетевого принтера надо, чтобы у него (у принтера) было netbios имя и имя порта (например: \\hp\d1prn).
Такие принтера видно через сетевое окружение.
Здесь имеем имя принтера hp имя порта d1prn. Что касаемо сетевых принтеров печать осуществляется через их родные TCP порты. К примеру принтер Xerox 4400, 4250, 3450 или печать на HP2200 сетевой. И в системе устанавливается свой порт типа PhaserPort с параметрами IP адрес и номер порта LPR (9100 к примеру). Вот меня и интересует как такой принтер можно привязать к локальному порту в системе. Печать осуществляется под управлением Windows 2000.
net use для таких принтеров не работает. Пожалуйста, предлагаем конструктивные идеи, которые проверено работали, а не простенькие решения для системных администраторов мелких контор. :))


tesseract   (2005-08-27 11:42:00) [32]

>>Например к LPT1, чтобы можно было печатать документы, отправляя их как на локальный принтер?

Из чего печатаем? в Windows 98/NT/2k/XP имеется PortMapper который позволяет это сделать. Такая же фича есть в Novell Client.


isasa   (2005-08-27 11:27:00) [33]

Сетевой принтер или локальный, его надо устанавливать в системе, и привязавать к конкретному порту. Если порта нет - добавляем(в данном случае - сетевой).
Драйвера сетевых принтеров обычно запрашивают протокол и (если TCP/IP) IP адрес(т.е. добавляют сетевой порт сами).
IP адрес сетевому принтеру назначаем с консоли самого принтера автономно.
Привязывать LPT куда-то ??????????????? зачем?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо