2016-03-14 493 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(); 
} 

這裏還有其他一些邏輯,但這是完成工作的基本思想。