Как найти или добавить имя пользователя для печати в XPS, напечатанный с помощью XPSDrv - PullRequest
0 голосов
/ 03 марта 2011

Кто-нибудь знает, существует ли простой способ включения имени пользователя печатного пользователя, где-либо доступного либо в пакете XPS, либо в любом заголовке в поток данных из драйвера при использовании XPSDrv? Используя фильтр в конвейере фильтров (хотя, на мой взгляд, это не просто)? Читая значения заголовка TCP / IP? Я погуглил пальцы, пытаясь найти разумное решение.

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Simple? Нет, не совсем. Лучше всего, вероятно, изменить фильтр в вашем драйвере XPS для выполнения следующих действий:

  1. Извлеките токен пользователя из пакета свойств конвейера, используя ключ XPS_FP_USER_TOKEN.
  2. Получить SID пользователя из токена, используя GetTokenInfo
  3. Получить имя пользователя из SID, используя LookupAccountSID
  4. Добавить имя пользователя к заявке на печать. Чтобы все было как можно проще, я бы предложил повторно использовать поле из общедоступной схемы, например, JobComment ParameterInit.

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

0 голосов
/ 04 марта 2011

Вы можете хранить метаданные в XPS (Базовые свойства), или вы можете использовать билет для этой цели тоже.

...