微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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的系统调用,它将让您了解更多或更少的错误.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐