【.Net码农】FastReport.Net直接打印相关问题整理

https://www.evget.com/article/2013/9/5/19550.html

FastReport直接打印相关问题整理

概述:最近慧都收集到很多关于FastReport直接打印的需求,小编整理了几种实现方式,供大家参考。

  最近慧都收集到很多关于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打印插件等。但是这些打印方法可能会影响报表的打印质量,浏览器兼容性与稳定性也不能保证,慧都在这里并不提倡。





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值