在windows 7计算机上从windows服务打印PDF

在windows 7计算机上从windows服务打印PDF,pdf,printing,windows-services,windows-7-x64,Pdf,Printing,Windows Services,Windows 7 X64,我在从Windows服务打印PDF文件时遇到问题 Windows服务具有以下元代码: System.Process进程=新进程() 分配文件路径 分配动词=“打印” CreateNowInow设置为true “窗口样式”设置为“隐藏” process.start() 我构建了Windows服务,并以用户帐户的形式安装在Windows XP上,运行良好。 但是当我在Windows7企业版上安装相同的东西时,它不再打印(尽管它安装正确) 有人知道问题出在哪里吗?在Windows 7上,可能有其他

我在从Windows服务打印PDF文件时遇到问题

Windows服务具有以下元代码:

  • System.Process进程=新进程()
  • 分配文件路径
  • 分配动词=“打印”
  • CreateNowInow设置为true
  • “窗口样式”设置为“隐藏”
  • process.start()
我构建了Windows服务,并以用户帐户的形式安装在Windows XP上,运行良好。 但是当我在Windows7企业版上安装相同的东西时,它不再打印(尽管它安装正确)


有人知道问题出在哪里吗?

在Windows 7上,可能有其他策略设置阻止服务打开后台进程。一般来说,我建议您查看Aspose.PDF、PDFTron或FoxIt SDK,以便从服务打印。

在Windows XP上,您的服务运行在“常规”的、启用登录的会话0中,但在Windows 7上,使用shell打印可能无法按预期运行


打印PDF的应用程序是什么?可以直接调用它,在命令行上传递要打印的文件吗

另一个想法。。。在WinXP中,用户之间共享打印机。我隐约记得Windows 7中可能不是这种情况。该过程直接调用该PDF的“默认”软件并发出“打印”命令。例如:如果“Foxit”Reader是PDF的默认软件,则会调用它并给出打印命令。实际上,不会。您的进程会调用Windows shell,然后它会调用您描述的默认软件。但是,使用会话0隔离,会话0中没有资源管理器,调用shell可能会产生意外结果。我建议您尝试在流程对象中直接调用Foxit,如下所示:“/p”