|
|
|
Как в ДОС сессии напечатать через Windows принтер?
|
|||
|---|---|---|---|
|
#18+
Проблема вот в чем, шоб печатать из ДОС, но шоб печатью занималась винда, а то просто вывод на лпт, то краказябы, или ставить драйвер под дос, и под виндой неважно какой принтер: струйный, лазерный и тд и тп, я видел в БЭСТ, в настройках принтера есть WIN принтер, как вызывать виндовыые функции, а то придётся под разные принтеры каждый раз чего то новое писать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 12:56 |
|
||
|
Как в ДОС сессии напечатать через Windows принтер?
|
|||
|---|---|---|---|
|
#18+
А что ты понимаешь под "DOS-сессией" ? Окно консоли ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 13:38 |
|
||
|
Как в ДОС сессии напечатать через Windows принтер?
|
|||
|---|---|---|---|
|
#18+
Есть стандартный для этих ситуаций выход - загрузка шрифтов на принтер. Скачайте Hewlett-Packard'овский DL5 и вставьте в автозагрузку. Минус только один - стоит выключить принтер, как шрифты надо грузить снова. Хотя занимает по времени секунд 10. Или ищите спецутилиты к вашей ДОС-программе. Для БЭСТ4 - Сервер печати и Сервер отчетов, twview95, etc. Для других - не знаю, не смотрел. Хотя вы же тут программисты - можете и сами написать копирование шрифтов на LPT-порт или передачу win-программе ДОС-кодированного файла как параметра... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 13:51 |
|
||
|
Как в ДОС сессии напечатать через Windows принтер?
|
|||
|---|---|---|---|
|
#18+
странные вопросы ты задаёшь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 13:52 |
|
||
|
Как в ДОС сессии напечатать через Windows принтер?
|
|||
|---|---|---|---|
|
#18+
что ты хочешь печатать графику/текст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 13:52 |
|
||
|
Как в ДОС сессии напечатать через Windows принтер?
|
|||
|---|---|---|---|
|
#18+
вообщето разницы нет откуда и что отправлять. как я понял тебе нужен текст вот у меня есть кусок кода для отправки текста - работает нормально - правда на delphi - труда не сотсавит тебе переписаьт на С++ procedure WriteRawStringToPrinter(PrinterName:String; S:String); var Handle: THandle; N: Longword; DocInfo1: TDocInfo1; Begin If not OpenPrinter(PChar(PrinterName), Handle, nil) Then Begin ShowMessage('Ошибка :'+IntToStr(GetLastError)); Exit; End; With DocInfo1 do Begin pDocName:=PChar('test doc'); pOutputFile:=nil; pDataType:='RAW'; End; StartDocPrinter(Handle, 1, @DocInfo1); StartPagePrinter(Handle); WritePrinter(Handle, PChar(toASCII(S)), Length(S), N); EndPagePrinter(Handle); EndDocPrinter(Handle); ClosePrinter(Handle); End; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 13:55 |
|
||
|
Как в ДОС сессии напечатать через Windows принтер?
|
|||
|---|---|---|---|
|
#18+
Win API - оно и в АФРИКЕ API ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 13:56 |
|
||
|
Как в ДОС сессии напечатать через Windows принтер?
|
|||
|---|---|---|---|
|
#18+
если хотишь графику отправлять ту в нете примеров - нимерено ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 13:58 |
|
||
|
Как в ДОС сессии напечатать через Windows принтер?
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы, но не много не то Дос сессии - это значит я запускаю из винды 2к/ХР/98 16-разрядную программу под ДОС, в программе вполне легально могу вызвать функцию печати виндовую, шоб не загружать шрифты, и тд и тп., шоб привязку к принтеру отдать драйверу принтера, выше был пример про HP принтер, а если у меня стоит USB какой нить без поддержки печати под дос, тогда шо? Вот я и хочу узнать как вызвать и какую, лучьше бы как нить стандартно для ДОС mov ax, xx mov bx, xx mov dx, xx int 21 (или какую нибудь другой номер %)) Вот примерно так, шоб печатать текст, но с черточками в смысле отчеты, таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2005, 10:48 |
|
||
|
Как в ДОС сессии напечатать через Windows принтер?
|
|||
|---|---|---|---|
|
#18+
А почему нельзя под виндой? Почему обязательно в досе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 07:55 |
|
||
|
Как в ДОС сессии напечатать через Windows принтер?
|
|||
|---|---|---|---|
|
#18+
в Dos по следующей причине, часть рабочих станций под DOS, часть под виндой, соответственно будет работать там и там, где винда стоит стоят лазерники, струйники. Можно в принципе и под винду переписать, но приложение все равно консольное, и переписывать надо. Нашел такой способ, печать в файл, в кодировке ср1251, потом exec notepad report.txt, потом пользователь вручную файл->печать, как то это некрасиво. Сразу бы из прграммы, но шоб эта прога могла работать под дос, половина компов 386sx16 с 4 метрами, а кол-во такое шо начальство начинает багроветь при мысле о замене на шото с 256 метрами памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 16:28 |
|
||
|
Как в ДОС сессии напечатать через Windows принтер?
|
|||
|---|---|---|---|
|
#18+
Посылай свой поток на печать через спец-файл PRN. Просто открываешь в своей программе PRN на запись и пишешь туда. Для DOS это совсем-совсем родной способ печати, а в виндах возможно прийдется проверить в настройках принтеров чтобы PRN показывал на тот принтер который нужно (в случае если у тебя несколько принтеров конечно). Но шрифты загружать все равно прийдется :) Либо прошивать ПЗУ у принтера. Во времена онные существовали резидентные программы под ДОС которые перехватывали 21-ое и пятое прерывание и перед каждой печатью посылали в принтер свои собственные шрифты. А потом уже заказаный пользователем поток. И никто не жаловался :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 20:18 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33072072&tid=2033274]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 266ms |
| total: | 441ms |

| 0 / 0 |
