2009-03-16 10 views
12

Я хочу написать приложение на C++ или C#, которое будет работать как драйвер принтера при установке. Он будет доступен в раскрывающемся списке в диалоговом окне «Печать», но вместо печати он вызовет мой код.Написание драйвера принтера для Windows

Я думаю, что могут быть некоторые интерфейсы, которые Windows предоставляет для записи драйверов принтера.

+0

ли вы выяснить, как это сделать? – jNewbie

ответ

21

Windows предоставляет множество интерфейсов. Знаете ли вы, какой драйвер принтера вы хотите написать? В настоящее время Windows поддерживает три варианта драйверов принтера - PostScript, Unidrv и XPSDrv (последний на сервере XP/2003 с EP 1.0 и только вверх). В большинстве случаев достаточно написать плагин драйвера. Прочитайте в INF-инфраструктуре, чтобы знать, что эти вещи устанавливаются, особенно раздел о мини-драйверах.

Как и было предложено, вам понадобится WDK, чтобы иметь возможность построить драйвер или его плагин. Обратите внимание, что драйверы не используют IDE Visual Studio или компиляторы. WDK поставляется с собственным компилятором. Вы всегда можете подключить последний к VS, но это совсем другая история.

У WDK есть установки, предназначенные для разных ОС. Вам нужно будет узнать, какую ОС (или набор OS-es) вы хотите указать, и выбрать соответствующую настройку.

Я хочу написать простой драйвер, который будет отображаться в списке принтеров.

Я не вижу, как это будет полезно. Если вы пишете драйвер, зачем вам нужен список всех других драйверов, присутствующих в системе?

печати этот драйвер будет вызывать в мой код так, что я могу делать такие вещи, как создать PDF-документа, называя веб-службы и т.д.

Интересно! Вы можете достичь всего этого в подключаемом модуле UI. Плагин UI - это DLL, которая загружается при выборе свойств драйвера Advanced.

Чтобы начать работу с плагинами UI, посмотрите на исходный код oemui в WDK.

+0

Я хочу написать простой драйвер, который будет отображаться в списке принтеров. Печать этого драйвера вызовет мой код, чтобы я мог делать такие вещи, как создание PDF-документа, вызов веб-службы и т. Д. – A9S6

+0

Привет. Могу ли я использовать UI-плагин для обработки документа после его печати в PDF? Я ищу MSDN lib и не вижу ничего подобного. http://msdn.microsoft.com/en-us/library/windows/hardware/ff551791(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/hardware /ff548564(v=vs.85).aspx – user2173353

+0

Я думаю, что это он: http://msdn.microsoft.com/en-us/library/windows/hardware/ff554141(v=vs.85).aspx – user2173353

-1

Я не уверен, что об этом будет отображаться в списке, но я никогда не пробовал этот код C++:

#include <fstream> 
Namespace Drivers{ 
Class Printer{ 
Const IOStream Printer("PRN"); 
Void Send(char a[]){ 
Printer<<a;} 
Char GetStatus[](){ 
Char a[]; 
Printer>>a; 
return a; 
}; 
} 
+0

Что действительно ли этот код? –

Смежные вопросы