Не уверен, что если этот вопрос по-прежнему актуальна для вас, но вы, вероятно, хотите, чтобы думать о чем-то вроде этого:
Используйте 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
Надеюсь, это поможет в любом случае. Я знаю, что разработка драйвера принтера может быть очень запутанной время от времени!
Привет, вам удалось найти решение для этого? Будет ли создаваться, чтобы понять, что вы сделали? –
Боюсь, что решения пока нет. – SolessChong
@MarkRedman Появляется новый ответ ниже – SolessChong