Как создать собственный драйвер принтера XP

Как был бы я создавать свой собственный драйвер принтера XP, который сделает следующее:

  • распечатайте в файл (вероятно, формат XPS)
  • поместите этот файл в защищенный паролем zip-файл
  • пошлите zip-файл по электронной почте на настроенный адрес электронной почты
12
задан CJ7 18 June 2010 в 04:59
поделиться

3 ответа

То, что вам нужно, - это не драйвер принтера. Один назвал его Print Monitor. Это DLL, которая будет загружена в процесс Spooler.exe. DLL дает Spooler на этапе инициализации логические имена портов, такие как LPT1:, FILE:, SPSPort: и т.д. Вывод, подготовленный драйвером принтера, должен быть отправлен любым способом на устройство назначения. В этой работе используются мониторы печати типа "Стандартный TCP/IP порт" или "Локальный порт".

Для написания монитора принтера необходимо скачать и установить Windows Driver Kit (WDK или некоторое время назад DDK см. http://www.microsoft.com/whdc/devtools/WDK/default.mspx). Более подробную информацию о написании монитора принтера смотрите на http://msdn.microsoft.com/en-us/library/ff563806(v=VS.85).aspx. Монитор печати - это DLL с некоторыми экспортируемыми функциями (см. http://msdn.microsoft.com/en-us/library/ff549405(v=VS.85).aspx). Рекомендую начать с модификации примера локального монитора LocalMon, полный исходный код которого вы найдете после установки WDK (см. http://msdn.microsoft.com/en-us/library/ff556478(v=VS.85).aspx).

Наиболее практичной проблемой при написании монитора принтера является требование написать настоящую многопоточную DLL. Вы должны быть очень внимательны, понимать и использовать EnterCriticalSection во всех своих функциях. Для отладки монитора принтера необходимо подключить Visual Studio Debugger к процессу Spooler. Остальное не отличается от написания стандартной DLL для windows Win32/Win64.

UPDATED: Еще одно небольшое замечание. Если вы не хотите, чтобы драйвер принтера что-то делал с данными, отправляемыми на принтер, вы можете использовать универсальный драйвер принтера. Вы найдете его в разделе "Generic", принтер с именем "Generic / Text Only". Изучите некоторые настройки драйвера, которые у вас есть (например, настройки CR LF)

18
ответ дан 2 December 2019 в 06:44
поделиться

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

3
ответ дан 2 December 2019 в 06:44
поделиться

Объедините эти программы, сначала cpri (для доступа через ваш код к устройству принтера)

Это на языке C

http://sourceforge.net/projects/cpri/

затем вы можете использовать

http://sourceforge.net/projects/pdfcreator

для получения виртуального принтера для генерации выходных данных в формате pdf, xps

2
ответ дан 2 December 2019 в 06:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: