![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как создать виртуальный принтер
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-портом, этот номер не пройдет.