Crystal报表直接向默认打印机发送报表

时间:2010-12-01 15:33:24

标签: c# asp.net visual-studio-2008 crystal-reports

我正在尝试将报告直接发送到默认打印机,并且此代码已经运行正常:

doc.Load(Server.MapPath("~\\reports\\CrystalReport\\DocumentCRV.rpt"));
doc.SetDataSource(dsReport);
doc.PrintToPrinter(1, true, 0, 0);

问题是它只在我在我的开发机器上运行web应用程序时才有效(所以,我假设它正在获取服务器的默认打印机,而不是用户的打印机)

3 个答案:

答案 0 :(得分:0)

用户是否设置了默认打印机?此外,本文可能有所帮助:

Choosing a printer when printing from Crystal Reports in C#

答案 1 :(得分:0)

除非您可能位于同一内部网络/目录中,否则无法从Web服务器直接打印到用户打印机。那将是一场管理噩梦。

您最好的选择是弹出查看器然后打开打印对话框。

我确实使用了一个可以枚举最终用户打印机的活动x控件,然后自动打印它。但是,它只是IE而且维护得很差。

答案 2 :(得分:0)

控制用户打印机不是可以从服务器端代码完成的,因为这会产生潜在的安全漏洞。可以强制浏览器以JavaScript格式打印。也许您可以将报告下载给用户?然后他们可以在PDF查看器中打印什么?