ActiveReports报表无法PDF打印的解决办法

操作方法

  • 01

    检查是否调用LoadDocument方法将报表加载到Silverlight报表查看器,由于使用LoadDocument加载的报表不带文件路径,让Silverlight报表查看器不知道报表在服务器端的具体位置,导致了PDF打印无法完成。有一个变通的方法解决此问题,如下步骤:

  • 02

    为运行报表和生成ID添加一个Service

  • 03

    使用以下代码添加ReportCache和IHttpHandler接口(Report.ashx)。这个主要用来缓存报表和获取rdf和准备打印的pdf的。

  • 04

    publicclassReport : IHttpHandler { publicvoidProcessRequest(HttpContext context) { stringid = context.Request.Params["id"]; if(string.IsNullOrEmpty(id)) { ThrowException(context.Response); return; } SectionDocument sd = ReportCache.GetSectionDocument(id); if(sd ==null) { ThrowException(context.Response); return; } stringtype = context.Request.Params["type"]; if(string.IsNullOrEmpty(type)) { type ="rdf"; } type = type.ToLower(); switch(type) { case"pdf": PdfExport pdfExport =newPdfExport(); stringprint = context.Request.Params["print"]; if(print ==null) { print ="false"; } print = print.ToLower(); if(print !="false") { pdfExport.Options.OnlyForPrint =true; } using(var outStream =newMemoryStream()) { // Put output into the stream pdfExport.Export(sd, outStream); // send the bits context.Response.Clear(); context.Response.ContentType ="application/pdf"; context.Response.AddHeader("content-disposition","inline; filename=ActiveReports.PDF"); context.Response.BinaryWrite(outStream.ToArray()); } break; case"rdf": default: using(MemoryStream outStream =newMemoryStream()) { // Put output into the stream sd.Save(outStream); // send the bits context.Response.Clear(); context.Response.BinaryWrite(outStream.ToArray()); } break; } } privatevoidThrowException(HttpResponse response) { response.ContentType ="text/html"; response.Write("The specified report was not found on the server"); response.Flush(); } publicboolIsReusable { get { returnfalse; } } }

  • 05

    自定义Silverlight报表查看器

  • 06

    使用DefaultSLViewerTemplates.xaml

  • 07

    自定义“打印”按钮

  • 08

    为绑定“打印”按钮命令

(0)

相关推荐

  • 打印机显示脱机无法打印的解决办法

    打印机脱机无法打印故障现象:打印机无法进行打印,并且电脑上显示打印机的状态为“脱机”,有时指示灯会闪烁。 打印机脱机无法打印故障原因:使用非原装墨盒或者使用重新灌墨的墨盒。没有正确设置打印机状态。 打 ...

  • 打印机脱机状态之无法打印的解决办法

    打印机脱机无法打印怎么办 下面就我们使用打印机时的维护做一小总结,希望对使用者或电脑爱好者有帮助!打印机维护分为硬维护和软维护,本文先讲软维护! 如题:打印机显示脱机故障排除方法 图1:打印机脱机无法 ...

  • 可用内存不足 无法打印照片 解决办法

    打印照片提示:可用内存不足 无法打印照片 其实这个问题不关打印机的驱动问题,也不关电脑的内存问题,其实是用photoshop裁切相片时选择的像素过大有关,只要将裁切图片的像素值调到ps默认的值就可以完 ...

  • 如何解决“打印机脱机无法打印”的解决办法

    日常生活中很多情况下都会用到打印机.偶尔会遇到"脱离状态下无法打印"这一情况,这时候我们该怎么办呢. 操作方法 01 检查打印机的电源.观察电源状态,是否打开.如果没有,按下电源键 ...

  • 无法删除打印任务解决办法

    在Windows XP 操作系统下如下操作,Windows NT类似。 依次点击“开始”→“控制面板”→“性能和维护”→“管理工具”→“服务”→“Print Spooler”. 点击左侧 “停止此服务 ...

  • 惠普HP Deskjet 1010 series无法打印的解决办法

    Deskjet 1010 ,官方驱动装好了,电脑也识别到了打印机,就是无法打印,可以点击查看正在打印内容,看见文件2-6秒消失了,都有一个通用的毛病,这是官方没测试好驱动,这是各人和个人电脑的配置或系 ...

  • 电脑不能使用打印机打印的解决办法(WIN7版)

    操作方法 01 首先确认电脑已经连接好网线,电脑能够成功上网 02 确认电脑已经安装了该打印机的驱动 打开控制面板-硬件和声音-设备和打印机 03 如果没有找到你的打印机设备,需要安装打印机驱动,安装 ...

  • USB转并口打印机不能打印的解决办法

    USB转并口打印机不能打印的解决办法

  • 打印机无法打印的原因与解决办法小结

    打印机无法打印的原因有很多,如果我们遇到打印机无法打印应该首先从简单到复杂入手。首先必须排除一些最简单的问题,比如打印机是否正常安装,关于打印机如何安装不懂的朋友请阅读:如何安装打印机 一文。另外打印 ...