【问题标题】:Printing from an application in IIS to a networked printer on server从 IIS 中的应用程序打印到服务器上的网络打印机
【发布时间】:2010-12-09 14:30:30
【问题描述】:

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

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 相关,因为如果我尝试在回帖后面的代码中执行相同的过程而不是从 ajax 调用中运行它,我仍然会得到相同的结果问题。

【问题讨论】:

    标签: ajax crystal-reports


    【解决方案1】:

    Patrick,对我来说,这是一个已知的水晶报表问题,通过 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 号并从服务中打印出来。
    • 使用打印服务确实是个好主意,但我不确定它的实现,所以请随时更新。
    【解决方案2】:

    这不是 Crystal Reports 或其他第三方应用程序的问题。这通常是 IIS_IUSER 的权限问题,因为它无法访问任何网络打印机。一个可能的解决方案是Process.Start doesn't work in IIS

    【讨论】:

      猜你喜欢
      • 2017-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 2011-04-13
      相关资源
      最近更新 更多