Ajax 从IIS中的应用程序打印到服务器上的网络打印机

Ajax 从IIS中的应用程序打印到服务器上的网络打印机,ajax,crystal-reports,Ajax,Crystal Reports,我有一行代码,我可以在本地运行,作为服务的一部分,运行得非常好 sReportPath = objCrystalUtils.ExportReportToPDF("Report Name", iReportInfoID) 此代码作为服务的一部分运行,当我通过向其提供数据对其进行单元测试时,它最终会生成报告并打印它 当我从ajax调用在.ashx中运行完全相同的代码时。报告已生成(我可以看到正在磁盘上创建的pdf文件),但未进行打印 oRpt.PrintToPrinter(objReport.D

我有一行代码,我可以在本地运行,作为服务的一部分,运行得非常好

sReportPath = objCrystalUtils.ExportReportToPDF("Report Name", iReportInfoID)
此代码作为服务的一部分运行,当我通过向其提供数据对其进行单元测试时,它最终会生成报告并打印它

当我从ajax调用在.ashx中运行完全相同的代码时。报告已生成(我可以看到正在磁盘上创建的pdf文件),但未进行打印

 oRpt.PrintToPrinter(objReport.DefaultAutoPrint, True, 0, 0)
在这两种情况下,使用相同的代码打印报告。(两种情况下,objReport.DefaultAutoPrint均为0)

我唯一的想法是,调用此方法的代码的位置与票据本身的位置不同

我试图打印的打印机是安装在我机器上的网络打印机,我运行的是Windows 7 IIS 6.1

有什么想法吗

编辑:

这里有一个想法。。。如果我在本地运行一个作为单元测试,而我通过一个通过IIS运行的web应用程序运行另一个,那么用户id和用户对默认打印机的访问权限是否存在差异

编辑:

因此,我将本地ASP、IUSR和系统用户添加到打印机安全性中,并允许他们打印。。。没有骰子。所以我检查了EVERYONE用户,它被设置为access,没有用户被拒绝。。。所以我认为这有点扼杀了这种推理

编辑:


我更改了这篇文章的名称,因为我不再认为这个问题与ajax有关,因为如果我尝试从一篇文章后面的代码bebebehind中执行相同的过程,而不是从ajax调用中运行它,我仍然会遇到相同的问题。

Patrick,对我来说,这是crystal reports的一个已知问题,通过IIS从正在运行的应用程序打印特定报告

我以前也有过同样的问题,在我们寻找这个问题时,我们得到了以下结果:

Report to be generated, exported, and then to be downloaded to client machine,  
so user can print it locally (say, report will be exported as PDf file, 
user can use print option of PDF reader).

如果此解决方案符合您的要求,我可以发布导出报告所需的代码。我可以将报告本地加载到用户计算机上,以便他们可以打印它。它们都以pdf格式导出。。。但在许多情况下,我们将运行20-30个单独的报表,搜索->打开->打印->关闭每个报表所需的时间都是一件非常麻烦的事情。我可能要做的是创建一个打印服务,它监视服务器上的数据库表,并让应用程序将报表ID假脱机到表中,以便服务来了,它会看到报告id号并从服务中打印出来。使用打印服务确实是个好主意,但我不确定它的实现情况,所以请随时向我们通报最新情况。