Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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;
        }