Crystal Report由指定印表機直接列印

將Crystal Report報表直接由指定印表機輸出

事前:引用Crystal Report DLL(Visual Studio 2010 後沒有內建Crystal Report,需自行到SAP網站下載)

using CrystalDecisions.CrystalReports.Engine;

Step1:顯示Print Dialog讓User挑選印表機

PrinterSettings printerSettings = new PrinterSettings();
PrintDialog printDialog = new PrintDialog();
printDialog.PrinterSettings = printerSettings; 
printDialog.AllowPrintToFile = false;
printDialog.AllowSomePages = true;               
printDialog.UseEXDialog = true;

Step2:指定Crystal Report輸出印表機

DataTable DT = new DataTable();//資料來源
ReportDocument rpDoc = new ReportDocument();
Rec.Load(string.Concat(System.Environment.CurrentDirectory, @"\RPT_FORM\檔名.rpt"));
Rec.SetDataSource(DT);
rpDoc.PrintOptions.PrinterName = printerSettings.PrinterName;
rpDoc.PrintToPrinter(printerSettings.Copies, false, 0, 0);

※ReportDocument.PrintToPrinter 方法※ 

public virtual void PrintToPrinter (int nCopies , bool collated , int startPageN , int endPageN );
參數:
nCopies       //指出列印份數。
collated        //指出是否自動分頁。
startPageN  //指出要列印的第一頁。參數設定為 0 即可列印所有頁面
endPageN   //指出要列印的最後一頁。參數設定為 0 即可列印所有頁面