我有一行代码,我可以在本地运行,作为完美运行的服务的一部分。
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和SYSTEM用户添加到打印机安全性并允许他们打印...没有骰子。所以我检查了每个用户,它被设置为访问,没有用户被拒绝...所以我认为有点杀死了这条推理线。
编辑:
我更改了这篇文章的名称,因为我不再认为问题是ajax相关的,因为如果我尝试在代码中执行相同的过程bebehind从post back而不是从ajax调用运行它我仍然得到相同问题
答案 0 :(得分:1)
之前我遇到过同样的问题,在我们搜索这个问题后,我们得到了以下内容:
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).