原創|使用教程|編輯:郝浩|2013-09-05 14:03:20.000|閱讀 1710 次
概述:最近慧都收集到很多關于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的打印功能間接實現??梢詤⒖家韵麓a。
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@ke049m.cn
文章轉載自:慧都控件網