c# – 通过PHP启动服务器端打印作业

这很可能不是一件容易的事,但情况如下:

我编写了一个C#命令行应用程序:

>使用ITextSharp创建PDF
>将其写入磁盘
>通过System.Diagnostics.Process使用Acrord32.exe(这是Acrobat Reader)以静打印生成的PDF

如果我构建我的解决方案并双击pdfGen.exe,它将按预期工作. PDF已创建并打印.

现在,我的应用程序必须部署在运行IIS 7的Windows Vista的内部服务器上.此服务器运行一些PHP webapp.它将通过PHP使用shell_exec()调用,以便生成的PDF将打印在连接到服务器的打印机上.

所以我的PHP页面看起来基本上是这样的:

shell_exec('/path/to/pdfGen.exe');

但这里出了问题.根据任务经理等情况会发生什么:

> pdfGen.exe启动
> PDF已创建
> Acrord32.exe启动
> pdfGen.exe永远挂起(PHP脚本也是如此)并且不会打印任何内容

我很确定这是一些与许可相关的问题.我已经给IIS_IUSRS访问了认打印机,以及Acrord32.exe所在的目录.但是,仍然没有打印.但是,如果我手动启动我的pdfGen.exe它可以工作.

知道我错过了什么吗?

编辑:

我不一定要使用Acrobat Reader来打印PDF.如果有另一种方法来静打印创建的PDF服务器端,我根本不介意.

解决方法:

为了检查发生了什么,请尝试运行
process monitor from Sysinternals并将事件过滤到adobe acrobat进程.您将看到acrobat的系统调用,它将让您了解更多或更少的错误.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...