最近慧都收集到很多关于FastReport直接打印的需求,具体就是点击打印后,需要不出现打印对话框也不预览报表,直接开始打印,这种需求在发票单据、条码标签打印中非常常用。小编整理了几种实现报表直接打印方式,供大家参考。
FastReportVCL
在FastReport VCL中,需要将打印选项的对话框设置为False,也可以用以下代码实现。
Report.LoadFromFile('filename'); Report.PrepareReport; Report.PrintOptions.ShowDialog := False; Report.Print;FastReport .NET(WinForm)
使用FastReport.Net在WinForm平台上进行报表开发,实现直接打印的方式和VCL相识,将PrintSettings对话框设置为False就行了,也可以使用以下代码实现。
Report report = new Report(); report.Load(...); report.RegisterData(...); report.PrintSettings.ShowDialog = false; report.Print();FastReport .NET(WebForm)
使用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打印插件等。但是这些打印方法可能会影响报表的打印质量,浏览器兼容性与稳定性也不能保证,慧都在这里并不提倡。
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/1236.html
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/1236.html