Sachin Makwana Ответов: 1

Можно ли создать драйвер виртуального принтера с помощью C#?


Я много искал, но не получил никакого кода разработки драйверов с использованием C#. Большая часть кода или примеров, которые я получаю, написана либо на C, либо на C++.

Что я уже пробовал:

Итак, можно ли создать драйвер виртуального принтера с помощью C#?

1 Ответов

Рейтинг:
1

Jochen Arndt

Короткий ответ: вы не можете.

Поиск "драйвера windows c#" объясняет, почему:
разработка драйверов kernel - C#? - переполнение стека[^]

Начинать с драйвера для Windows проекта см. Начало работы с драйверами Windows[^].


Sachin Makwana

Я нашел эту ссылку, которая предоставляет виртуальный принтер с использованием c#.

http://www.colorpilot.com/virtualprinter_howto_c_sharp.html

Я все еще не понимаю, что он на самом деле делает. и как я могу это использовать?

Jochen Arndt

Это определенно не содержит виртуального принтера водители.

Быстрый взгляд показывает, что речь идет об обработке печати (задания, настройки, предварительный просмотр, печать в файл).

Sachin Makwana

ладно. Я взглянул на один из его примеров. Он считывает INI-файл и предварительно просматривает данные печати, хранящиеся в виде emf-файла.

мой вопрос заключается в том, хранит ли каждый принтер свои задания в INI-файле? и действительно ли данные печати хранятся в файле emf??

Jochen Arndt

Настройки обрабатываются Windows и драйверами и хранятся в реестре. См., например Записи реестра для печати.

Файлы печати могут быть EMF, raw или текстовыми в зависимости от принтера и настроек. Они управляются Спулер Печати.

Sachin Makwana

http://www.colorpilot.com/virtualprinter_howto_c_sharp.html

Будет ли полезно создать драйвер виртуального принтера на C# или мне нужно перейти на C++?

Я действительно запутался в разработке драйверов виртуальных принтеров (C# или C++).

Jochen Arndt

Драйвер виртуального принтера-это драйвер, который отправляет данные не на физический принтер, а в файл. Примерами могут служить MS XPS document writer и различные PDF-программы.

Но они все еще являются драйверами, у которых есть свои требования к их созданию.

Вы можете создать приложение, которое ведет себя аналогично (создает файлы печати). Но это не будет драйвер и не может быть выбрано с помощью обычных диалоговых окон печати.

Снова:
Драйвер Windows не может быть написан на C#. Ему все равно, является ли это виртуальный драйвер или драйвер для физического устройства, и для какого типа устройства (принтер, клавиатура, хранилище ...).