2016-03-14 233 views
0

我有一个将SSRS报告作为PDF写入文件目录的应用程序,我希望每次将报告添加到文件夹中以便将其打印到特定的网络打印机。这些报告是使用SQL SSRS Web服务生成的。以编程方式将PDF打印到打印机C#

此文件夹和应用程序位于服务器上,我无法使用Adobes静音打印来完成此操作。有人有建议吗?

谢谢。

+0

查找Win32打印后台处理程序API。您必须使用平台调用从C#调用这些原生函数。 – RogerN

回答

0

意识到我没有回答这个问题,并希望在其他人遇到此问题时提供后续支持。最后我用从这里找到了答案的代码...

Print a ReportViewer Without Preview

我能够用我的Web服务来创建报告,并把它们放在一个报表查看器,然后简单地传递报告和打印机我想打印成上述代码的参数,并为我处理打印。我所做的唯一的事情就是扩展功能以接受打印机名称作为参数,并使用指定的打印机作为我想打印的指定打印机。

这里是一些示例代码,以防万一任何人想看到我使用的一般流程。

List<ReportParameter> reportparms = new List<ReportParameter>(); 

ServerReport rpt = new ServerReport(); 
reportparms.Add(new ReportParameter("param1", param1)); 
rpt.ReportServerUrl = reportserver; 
rpt.ReportPath = myReportPath; 
rpt.SetParameters(reportparms); 

//I created a class "ReportPrintDocument" for the code from the question linked above. 
ReportPrintDocument rdp = new ReportPrintDocument(rpt, myPrinter); 
rdp.PrinterSettings.PrinterName = ps.Printer; 

if (p.PrinterSettings.IsValid) 
{ 
    rdp.Print(); 
} 

这里还有其他一些逻辑,但这是完成工作的基本思想。