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

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

как создать виртуальный принтер


Nosik_alex ©   (2003-08-06 10:17:00) 

Народ! Посоветуйте, как создать виртуальный принтер в системе, что бы на него можно было печатать из ДОС-приложения, а затем этот принтер обрабатывал и форматировал эту информацию от ДОС-приложения как мне нужно и печатал её на лазерный принтер?


y-soft   (2003-08-06 15:43:00) [1]

Если есть желание разбираться в чужом непростом коде, то, например, для GhostScript, который работает как раз, как виртуальный принтер, доступны исходники:

http://www.cs.wisc.edu/~ghost/doc/cvs/Readme.htm

Или посмотреть примеры в DDK. Но как-то не предназначена Delphi для написания драйверов...


Nosik_alex   (2003-08-06 15:04:00) [2]

С печатью в файл у меня практически уже реализовано, но это не красиво.


PVOzerski   (2003-08-06 14:43:00) [3]

Во всяком случае, я сейчас успешно вывел текст в файл :^). А генерация неповторяющегося имени файла - дело техники. Хотя выглядят все эти выскакивающие диалоги, честно говоря, несколько удручающе...


Nosik_alex   (2003-08-06 14:28:00) [4]

Там всплывает окно и предлагает ввести имя файла. Если вводить программно имя, то нет уверенности в том что следующее задание не затрёт уже сформированный ранее не обработанный файл.


PVOzerski   (2003-08-06 14:14:00) [5]

А ежели этот самый \\Server_Name\Printer_Name сделать Generic/text only и направить в файл?


Nosik_alex   (2003-08-06 13:42:00) [6]

Это понятно, но мне нужно перехватить то, что идет на принтер от ДОС-приложения, обработать и затем напечатать на лазерном принтере. Поэтому и нужен виртуальный принтер.


y-soft   (2003-08-06 13:04:00) [7]

В NT-системах можно перенаправить печать из DOS-программы на любой установленный принтер:

net use lpt1: [\\Server_Name\Printer_Name]

А потом освободить:

net use lpt1: /d




Nosik_alex   (2003-08-06 11:33:00) [8]

Да хотелось бы красиво, на уровне Винды.


PVOzerski   (2003-08-06 10:48:00) [9]

Может, сделать резидент под DOS, чтобы перехватывал INT 17H. Но если прога работает напрямую с LPT-портом, этот номер не пройдет.


Наверх

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