原創|使用教程|編輯:郝浩|2013-09-05 14:03:20.000|閱讀 1694 次
概述:最近慧都收集到很多關于FastReport直接打印的需求,小編整理了幾種實現方式,供大家參考。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
最近慧都收集到很多關于FastReport直接打印的需求,具體就是點擊打印后,需要不出現打印對話框也不預覽報表,直接開始打印,這種需求在發票單據、條碼標簽打印中非常常用。小編整理了幾種實現報表直接打印方式,供大家參考。
在FastReport VCL中,需要將打印選項的對話框設置為False,也可以用以下代碼實現。
Report.LoadFromFile('filename'); Report.PrepareReport; Report.PrintOptions.ShowDialog := False; Report.Print;
使用FastReport.Net在WinForm平臺上進行報表開發,實現直接打印的方式和VCL相識,將PrintSettings對話框設置為False就行了,也可以使用以下代碼實現。
Report report = new Report(); report.Load(...); report.RegisterData(...); report.PrintSettings.ShowDialog = false; report.Print();
使用FastReport ASP.Net版本開發的Web報表時,是不能直接實現直接打印報表,需要先導出為PDF后,再由Adobe Reader的打印功能間接實現。可以參考以下代碼。
protected void Button1_Click(object sender, EventArgs e) { FastReport.Utils.Config.WebMode = true; using (Report report = new Report()) { report.Load("your_report.frx"); report.RegisterData(...); report.Prepare(); // Export report to PDF stream FastReport.Export.Pdf.PDFExport pdfExport = new FastReport.Export.Pdf.PDFExport(); using (MemoryStream strm = new MemoryStream()) { report.Export(pdfExport, strm); // Stream the PDF back to the client as an attachment Response.ClearContent(); Response.ClearHeaders(); Response.Buffer = true; Response.ContentType = "Application/PDF"; Response.AddHeader("Content-Disposition", "attachment;filename=report.pdf"); strm.Position = 0; strm.WriteTo(Response.OutputStream); Response.End(); } } }
以上方法是FastReport官方唯一推薦的方法,當然Web報表的直接打印,還有很多替代的方式,如調用IE的HTML頁面打印,調用第三方打印插件,如AcitveX打印插件等。但是這些打印方法可能會影響報表的打印質量,瀏覽器兼容性與穩定性也不能保證,慧都在這里并不提倡。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網