如何在使用XPSDrv打印的XPS中查找或添加打印用户的用户名

时间:2011-03-03 15:47:02

标签: printing xps

有没有人知道是否有简单方式将打印用户的用户名包含在XPS包中或者在使用XPSDrv时来自驱动程序的数据流中的任何标题中的某个位置?通过在过滤器管道中使用过滤器(即使在我看来这不简单)?通过读取TCP / IP标头值?我试着找一个合理的解决方案,用谷歌搜索。

2 个答案:

答案 0 :(得分:1)

简单?不,不是真的。您最好的选择可能是修改XPS驱动程序中的过滤器以执行以下操作:

  1. 使用XPS_FP_USER_TOKEN键从管道的属性包中提取用户令牌。
  2. 使用GetTokenInfo
  3. 从令牌中获取用户的SID
  4. 使用LookupAccountSID
  5. 从SID获取用户名
  6. 将用户名添加到打印票证。为了使事情尽可能简单,我建议重用公共模式中的字段,例如JobComment ParameterInit。
  7. 这只是一个起点。我怀疑你需要深入研究XPS驱动程序的工作原理才能使其成为可靠的解决方案。

答案 1 :(得分:0)

您可以在XPS(核心属性)中存储元数据,或者也可以将打印票证用于此目的。