2013-07-14 3 views
4

Я пытаюсь создать виртуальный принтер. Есть уже некоторые ответы, такие как this и this.Как создать виртуальный принтер?

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

Нужно ли мне входить в комплект драйверов для Windows? Или есть бесплатный SDK для этого?

Спасибо.

+0

Привет, вам удалось найти решение для этого? Будет ли создаваться, чтобы понять, что вы сделали? –

+0

Боюсь, что решения пока нет. – SolessChong

+1

@MarkRedman Появляется новый ответ ниже – SolessChong

ответ

2

Не уверен, что если этот вопрос по-прежнему актуальна для вас, но вы, вероятно, хотите, чтобы думать о чем-то вроде этого:

Используйте WDK (Driver Kit для Windows) для создания Unidrv UI plugin. Это позволит вам указать пользовательский интерфейс во время печати (для вашего диалога с принтером). Причина, по которой вы хотите показать интерфейс, заключается в том, что это один из единственных компонентов драйвера принтера, которые выполняются в сеансе пользователя (тот же процесс, что и приложение печати). Конвейер XPS и монитор порта - это сеанс 0.

Если вы хотите придерживаться соглашения MS, вы сделаете файл спула для преобразования PDF в фильтр рендеринга XPS Filter pipeline (это если вы используете XPSDrv driver). Конвейер фильтра - это место, где вы можете изменить данные спутника XPS, входящие в последний фильтр, и преобразовать его в тип выходного документа (PDF в вашем случае).

Чтобы выполнить обработку после печати, вы можете захотеть создать port monitor (опять же с WDK) и начать новый процесс для обработки послепечатной печати после того, как монитор порта выведет выход печати на диск.

Только проблема с этим подходом заключается в том, что вы не можете использовать мониторы портов в драйверах версии 4 (это новый тип драйвера в Windows 8). Драйверы версии 3 по-прежнему работают в Win 8, но я думаю, что они будут постепенно прекращены.

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

[ОТКАЗ: Я связан с Мако SDK R & D команда]
Я знаю, вы просили свободного SDK, к сожалению, я не знаю ничего, что было бы подходящим, но я знаю, что наши компания предлагает платформу виртуального принтера (SDK), которая была бы хорошей для вас (печатает в формате PDF и поддерживает обработку после печати). Вы можете найти более подробную информацию на странице Mako SDK website

Надеюсь, это поможет в любом случае. Я знаю, что разработка драйвера принтера может быть очень запутанной время от времени!

1

После прочтения и делать много исследований с целью установить что-то вроде Redmon и использовать SDK принтера, я закончил проект с использованием этого SDK: http://www.novapdf.com/pdf-sdk.html

Это решение, однако, будет работать с окнами только.

[Я не связан с NovaPDF]

Я исследовал версию OSX, однако это будет другой сборки, вероятно, можно создать что-то с помощью этого метода: http://www.jms1.net/osx-pdf-services.shtml[Я до сих пор не попробовал это]

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