public void ProcessRequest(HttpContext context) { if (!context.Request.Url.AbsolutePath.EndsWith(HandlerExtension)) { if (!context.Request.Url.AbsolutePath.EndsWith(HandlerCacheExtension)) { return; } // return image var keyName = Path.GetFileName(context.Request.FilePath); var cacheItem = context.Cache[keyName]; context.Response.BinaryWrite((byte[])cacheItem); return; } context.Response.ContentType = "text/html"; var streams = new HtmlStreamProvider(); try { using (var report = new PageReport(new FileInfo(context.Server.MapPath(context.Request.Url.LocalPath)))) { var html = new HtmlRenderingExtension(); var settings = (Settings)html.GetSupportedSettings(); settings.StyleStream = false; settings.OutputTOC = false; settings.Mode = RenderMode.Paginated; report.Document.Render(html, streams, ((ISettings)settings).GetSettings()); } foreach (var secondaryStreamInfo in streams.GetSecondaryStreams()) { var secondaryStream = (MemoryStream)secondaryStreamInfo.OpenStream(); // 30 seconds should be enough to load all images context.Cache.Insert(secondaryStreamInfo.Uri.OriginalString, secondaryStream.ToArray(), null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 0, 30)); } } catch (ReportException eRunReport) { // Failure running report, just report the error to the user. context.Response.Write(Properties.Resource.Error); context.Response.Write(eRunReport.ToString()); return; } var primaryStream = (MemoryStream)streams.GetPrimaryStream().OpenStream(); context.Response.BinaryWrite(primaryStream.ToArray()); }
void AddPageReportExportTypes() { List <PageExport> pageExports = new List <PageExport>(); bool isFpl = _reportType == DesignerReportType.Page; var imageRenderingExtension = new ImageRenderingExtension(); var wordRenderingExtension = new WordRenderingExtension(); var htmlRenderingExtension = new HtmlRenderingExtension(); var pdfRenderingExtension = new PdfRenderingExtension(); var xmlRenderingExtension = new XmlRenderingExtension(); var excelRenderingExtension = new ExcelRenderingExtension(); pageExports.Add(new PageExport { DisplayName = Properties.Resources.PageImageString, DefaultFileName = Properties.Resources.ImageFileName, Settings = imageRenderingExtension.GetSupportedSettings(isFpl), Filter = Properties.Resources.ImageFilter, RenderingExtension = imageRenderingExtension, }); pageExports.Add(new PageExport { DisplayName = Properties.Resources.PageWordString, DefaultFileName = Properties.Resources.WordFileName, Settings = wordRenderingExtension.GetSupportedSettings(isFpl), Filter = Properties.Resources.WordFilter, RenderingExtension = wordRenderingExtension, }); pageExports.Add(new PageExport { DisplayName = Properties.Resources.PageHTMLString, DefaultFileName = Properties.Resources.HTMLFileName, Settings = htmlRenderingExtension.GetSupportedSettings(isFpl), Filter = Properties.Resources.HTMLFilter, RenderingExtension = htmlRenderingExtension, }); pageExports.Add(new PageExport { DisplayName = Properties.Resources.PagePDFString, DefaultFileName = Properties.Resources.PDFFileName, Settings = pdfRenderingExtension.GetSupportedSettings(isFpl), Filter = Properties.Resources.PDFFilter, RenderingExtension = pdfRenderingExtension, }); pageExports.Add(new PageExport { DisplayName = Properties.Resources.PageRDFString, DefaultFileName = Properties.Resources.RDFFileName, Settings = new Export.Rdf.Settings(), Filter = Properties.Resources.RdfFilter, RenderingExtension = new RdfRenderingExtension(), }); pageExports.Add(new PageExport { DisplayName = Properties.Resources.PageXMLString, DefaultFileName = Properties.Resources.XMLFileName, Settings = xmlRenderingExtension.GetSupportedSettings(isFpl), Filter = Properties.Resources.XmlFilter, RenderingExtension = xmlRenderingExtension, }); pageExports.Add(new PageExport { DisplayName = (_reportType == DesignerReportType.Rdl) ? Properties.Resources.PageExcelRE : Properties.Resources.PageExcelString, DefaultFileName = Properties.Resources.ExcelFileName, Settings = excelRenderingExtension.GetSupportedSettings(isFpl), Filter = Properties.Resources.ExcelFilter, RenderingExtension = excelRenderingExtension, }); cmbExportFormat.DataSource = pageExports; cmbExportFormat.DisplayMember = "DisplayName"; cmbExportFormat.SelectedIndex = 0; }