这很可能不是一件容易的事,但情况如下:
我编写了一个C#命令行应用程序:
>使用ITextSharp创建PDF
>将其写入磁盘
>通过System.Diagnostics.Process使用Acrord32.exe(这是Acrobat Reader)以静默打印生成的PDF
如果我构建我的解决方案并双击pdfGen.exe,它将按预期工作. PDF已创建并打印.
现在,我的应用程序必须部署在运行IIS 7的Windows Vista的内部服务器上.此服务器运行一些PHP webapp.它将通过PHP使用shell_exec()调用,以便生成的PDF将打印在连接到服务器的打印机上.
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的系统调用,它将让您了解更多或更少的错误.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。