PDA

Показать полную графическую версию : настройка перенаправления печати


subbotin
22-03-2010, 13:16
Здраствуйте.
Имею комп с WIN XP подключет к сетке. Нужно научить его печатать файлы из под DOS по сетке на HP принтер.
Свой старый принтер NX-1500 так и не смог подключить к WIN XP
В идеале Нужно печатать файлы из под QBASIC ( :wow: ) по сетке на HP принтер.
С win 98 - печатал без проблем (не в сетке - напрямую на Star NX)
В DOS-е нашел команду MODE /STATUS - по идее можно перенаправить печать с LPT порта (который никак не хочет видеть XP) на COM.
Есть ли возможность перенаправить с LPT1 по сетке на HP.
Уж больно пограмка в QBASIC-е мне нравиться - сам её русифицировал. Не хртелось бы отказываться. :clapping:

gf100
22-03-2010, 13:52
Есть ли возможность перенаправить с LPT1 по сетке на HP »
Легко. Как два байта переслать.

Расшариваешь принтер, потом используя net use цепляешь его на lpt1. Возможна проблема если нет админских прав на машине, но и она обходится.

subbotin
22-03-2010, 16:50
gf100,
по подробнее про net use - или ссылку где почитать.
Что такое "расшаривать" - это делать доступным в сети?
как из под DOS я могу его расшарить, или это нужно делать из под XP?
Из под XP - все печатается легко.
Я могу
1)загрузится с дискеты досовской и запустить свою прогу в QBASIC, но у меня там нет NET USE.
В XP - не настоящий DOS.
2) QBASIC с программой запускаю с рабочего стола. Я так понял работает она из под CMD.
Тогда как в CMD - настроить сетевые подключения.
И ещё моя прога выводит файл на печать через PRINTUSING. Поймёт ли этот оператор что я хочу напечатать файл не из под DOS и не через LPT прот а через сеть?

gf100
22-03-2010, 17:21
Что такое "расшаривать" - это делать доступным в сети? »
Ну да. Правой кнопкой на принтере - общий доступ.
по подробнее про net use - или ссылку где почитать. »
Вызываем командную строку - Пуск - Выполнить - cmd
далее:
C:\>net use /?
Синтаксис данной команды:

NET USE
[имя_устройства | *] [\\имя_компьютера\имя_ресурса[\том] [пароль | *]]
[/USER:[имя_домена\]имя_пользователя]
[/USER:[имя_домена_с_точками\]имя_пользователя]
[/USER:[имя_пользователя@имя_домена_с_точками]
[/SMARTCARD]
[/SAVECRED]
[[/DELETE] | [/PERSISTENT:{YES | NO}]]

NET USE {имя_устройства | *} [пароль | *] /HOME

NET USE [/PERSISTENT:{YES | NO}]
Например у меня - компьютер work, принтер расшарен под именем hp3005:

net use lpt1 \\work\hp3005

Причем, пользоваться можно любым доступным по сети принтером, в том числе установленным на своей машине.
2) QBASIC с программой запускаю с рабочего стола. »
Я имею в виду именно этот вариант.

Суть, в общем, следующая - программа считает, что отправляет задание на печать на порт lpt, система (windows) отлавливает это задание и заворачивает его куда указано.

Еще один момент: принтер должен "знать" кодовую страницу cp866, но для hp это обычно не проблема.

subbotin
22-03-2010, 17:45
СПАСИБО, буду пробовать.

Например у меня - компьютер work, принтер расшарен под именем hp3005 »
имена принтеров совпадают в CMD и WIN XP.
Как я могу узнать имя принтера из CMD? или мне достаточно того названия, что стоит в WIN XP?

gf100
22-03-2010, 20:48
мне достаточно того названия, что стоит в WIN XP? »
Когда делаешь принтер общим (расшариваешь), то задаешь имя общего ресурса.
Как я могу узнать имя принтера из CMD? »
Из cmd можно узнать командой net share.

subbotin
23-03-2010, 11:52
gf100,
Спасибо.
настроил через net use lpt1 вывод на печать через сеть.
Но принтер (или сетевой компьютер от которого подключет принтер) вместо русских букв выводит крякозяблы.
В листинге программы - также вместо русских букв - крякозяблы.
на своем компе (в CMD) набрал mode con cp=866. При выводе на печать попрежнему - крякозяблы.
Что нужно? Ввести туже команду mode con cp=866 (из CMD) в сетевом компьютере к которому подключен принтер? или нщё что то доугое?

ps: программу редактировал да-а-а-авно, ещё из под нортона досовского.

gf100
23-03-2010, 15:58
Что нужно? Ввести туже команду mode con cp=866 (из CMD) в сетевом компьютере к которому подключен принтер? или нщё что то доугое? »
Вариантов собственно три и зависят они от марки/модели принтера (её желательно бы озвучить):
1. для принтеров hp в драйвере принтера дополнительно/умолчания/прочие/графика - установить загружаемый шрифт.
2. для принтеров hp настроить шрифт по умолчанию с кодовой страницей cp866
3. в программе при начале печати выдавать на принтер код переключения на кодовую страницу cp866.

Если у принтера вообще отсутствует возможность т.н. "досовской печати" поможет загрузка внешнего шрифта...

subbotin
25-03-2010, 09:42
короче тут подумать надо :bow:

gf100
26-03-2010, 16:50
subbotin, вкладываю описание команд PCL, если будешь править текст программы обрати внимание на выбор набора символов.

subbotin
26-03-2010, 17:25
вообще тут направшивается такое простое решение.
Запустить CMD, QBASIC (для верности) и из под него отредактироваьт программу ещё раз.
CMD - то на всех компьютерах - одинаковая. Поскольку функционально эта qbasic-овская программа работает нормально - крякозяблы -из за несоответствия настроек кодовых страниц.
Или ещё проще: вывести прямо на дисплей из под того же CMD - QBASIC - все chr() коды - от 1 до 333(например). найти в них русские буквы и задать интервал их в Inkey$ (или где там точно счас не вспомню), в параметрах qbasic-овской программы.




© OSzone.net 2001-2012