示例#1
0
 public void GetRenderingResource(CreateAndRegisterStream createAndRegisterStreamCallback, NameValueCollection deviceInfo)
 {
     try
     {
         ROMReport.GetRenderingResource(createAndRegisterStreamCallback, deviceInfo["GetImage"]);
     }
     catch (ReportRenderingException)
     {
         throw;
     }
     catch (Exception ex2)
     {
         if (AsynchronousExceptionDetection.IsStoppingException(ex2))
         {
             throw;
         }
         throw new ReportRenderingException(ex2, unexpected: true);
     }
 }
示例#2
0
 private void RenderMHTMLInternalImageSrc(string imageName)
 {
     if (imageName != null)
     {
         string text = null;
         if (m_mhtmlStreamNames == null)
         {
             m_mhtmlStreamNames = new Hashtable();
         }
         else
         {
             text = (string)m_mhtmlStreamNames[imageName];
         }
         if (text == null)
         {
             text = imageName;
             ROMReport.GetRenderingResource(m_createAndRegisterStreamCallback, imageName);
             m_mhtmlStreamNames[imageName] = text;
         }
         WriteStream("cid:");
         WriteStream(text);
     }
 }
 public Html5ServerRenderer(ROMReport report, Microsoft.ReportingServices.Rendering.SPBProcessing.SPBProcessing spbProcessing, NameValueCollection reportServerParams, DeviceInfo deviceInfo, NameValueCollection rawDeviceInfo, NameValueCollection browserCaps, CreateAndRegisterStream createAndRegisterStreamCallback, SecondaryStreams secondaryStreams)
     : base(report, spbProcessing, reportServerParams, deviceInfo, rawDeviceInfo, browserCaps, createAndRegisterStreamCallback, secondaryStreams)
 {
 }
 public override void Render(HtmlTextWriter outputWriter)
 {
     m_encoding   = outputWriter.Encoding;
     m_mainStream = Utility.CreateBufferedStream(outputWriter);
     if (!m_onlyVisibleStyles)
     {
         string    styleStreamName = HTML5Renderer.GetStyleStreamName(m_rplReport.ReportName, m_pageNum);
         Stream    stream          = m_createAndRegisterStreamCallback(styleStreamName, "css", Encoding.UTF8, "text/css", willSeek: false, StreamOper.CreateAndRegister);
         ROMReport rOMReport       = m_report as ROMReport;
         if (rOMReport != null)
         {
             HTMLStyleRenderer hTMLStyleRenderer = new HTMLStyleRenderer(rOMReport.Report, m_createAndRegisterStreamCallback, m_deviceInfo, this);
             hTMLStyleRenderer.Render(stream);
         }
         stream.Flush();
         m_styleStream = stream;
     }
     else if (!m_useInlineStyle)
     {
         string     styleStreamName2 = HTML5Renderer.GetStyleStreamName(m_rplReport.ReportName, m_pageNum);
         StreamOper operation        = StreamOper.CreateOnly;
         if (m_deviceInfo.StyleStream)
         {
             operation = StreamOper.CreateAndRegister;
         }
         Stream stream2 = m_createAndRegisterStreamCallback(styleStreamName2, "css", Encoding.UTF8, "text/css", willSeek: false, operation);
         m_styleStream = new BufferedStream(stream2);
     }
     if (!m_deviceInfo.HTMLFragment)
     {
         WriteStream(HTMLElements.HtmlStandardsDocType);
         Stream mainStream = m_mainStream;
         Stream stream3    = m_mainStream = new BufferedStream(m_createAndRegisterStreamCallback("BODY", "html", null, null, willSeek: true, StreamOper.CreateOnly));
         RenderHtmlBody();
         RenderSecondaryStreamSpanTagsForJavascriptFunctions();
         WriteStream(HTMLElements.m_closeBody);
         m_mainStream = mainStream;
         stream3.Flush();
         WriteStream(HTMLElements.m_openHtml);
         WriteStreamLineBreak();
         WriteStream(HTMLElements.m_openHead);
         WriteStream(HTMLElements.m_openTitle);
         WriteStream(HttpUtility.HtmlEncode(m_rplReport.ReportName));
         WriteStream(HTMLElements.m_closeTitle);
         WriteStreamLineBreak();
         WriteStreamCR("<META http-equiv=\"Content-Type\" content=\"text/html; charset=" + outputWriter.Encoding.BodyName + "\"/>");
         WriteStreamCR("<META http-equiv=\"Content-Style-Type\" content=\"text/css\"/>");
         WriteStreamCR("<META http-equiv=\"Content-Script-Type\" content=\"text/javascript\"/>");
         if (!m_isMHTML)
         {
             WriteStreamCR(HTMLElements.EdgeContentType);
         }
         RenderHead();
         RenderFinalScript();
         WriteStream(HTMLElements.m_closeHead);
         WriteStream(HTMLElements.m_openBody);
         if (m_deviceInfo.AllowScript)
         {
             StringBuilder stringBuilder = new StringBuilder();
             if (base.NeedResizeImages)
             {
                 stringBuilder.Append(m_deviceInfo.JavascriptPrefixId);
                 stringBuilder.Append("ResizeImages();");
             }
             if (m_deviceInfo.NavigationId != null)
             {
                 stringBuilder.Append(m_deviceInfo.JavascriptPrefixId);
                 stringBuilder.Append("GoToBookmark(");
                 stringBuilder.Append(m_deviceInfo.NavigationId);
                 stringBuilder.Append(");");
             }
             if (m_report.SortItem != null)
             {
                 stringBuilder.Append(m_deviceInfo.JavascriptPrefixId);
                 stringBuilder.Append("GoToSortItem();");
             }
             if (m_report.ShowHideToggle != null)
             {
                 stringBuilder.Append(m_deviceInfo.JavascriptPrefixId);
                 stringBuilder.Append("GoToShowHideToggle();");
             }
             if (m_emitImageConsolidationScaling)
             {
                 stringBuilder.Append("Microsoft_ReportingServices_HTMLRenderer_ScaleImageConsolidation('");
                 stringBuilder.Append(m_deviceInfo.HtmlPrefixId);
                 stringBuilder.Append("');");
                 stringBuilder.Append("Microsoft_ReportingServices_HTMLRenderer_ScaleImageForFit('");
                 stringBuilder.Append(m_deviceInfo.HtmlPrefixId);
                 stringBuilder.Append("');");
             }
             bool hasFixedHeader = HasFixedHeader;
             if (m_deviceInfo.IsBrowserGeckoEngine && hasFixedHeader)
             {
                 stringBuilder.Append(m_deviceInfo.JavascriptPrefixId + "CreateFixedHeaders();");
             }
             if (m_needsCanGrowFalseScript)
             {
                 stringBuilder.Append("Microsoft_ReportingServices_HTMLRenderer_GrowTablixTextBoxes();");
             }
             if (m_needsFitVertTextScript)
             {
                 stringBuilder.Append("Microsoft_ReportingServices_HTMLRenderer_FitVertText('");
                 stringBuilder.Append(m_deviceInfo.HtmlPrefixId);
                 stringBuilder.Append("'");
                 stringBuilder.Append(",");
                 stringBuilder.Append("'");
                 stringBuilder.Append(m_deviceInfo.HtmlPrefixId);
                 stringBuilder.Append("oReportDiv");
                 stringBuilder.Append("');");
             }
             if (m_needsGrowRectangleScript)
             {
                 stringBuilder.Append("Microsoft_ReportingServices_HTMLRenderer_GrowRectangles('");
                 stringBuilder.Append(m_deviceInfo.HtmlPrefixId);
                 stringBuilder.Append("'");
                 stringBuilder.Append(",");
                 stringBuilder.Append("'");
                 stringBuilder.Append(m_deviceInfo.HtmlPrefixId);
                 stringBuilder.Append("oReportDiv");
                 stringBuilder.Append("');");
             }
             if (stringBuilder.Length > 0)
             {
                 WriteStream(string.Concat(" onload=\"", stringBuilder, "\""));
             }
             if (hasFixedHeader && !m_isMHTML && m_hasOnePage)
             {
                 WriteStream(" onscroll=\"" + m_deviceInfo.JavascriptPrefixId + "CreateFixedHeaders()\"");
                 WriteStream(" onresize=\"" + m_deviceInfo.JavascriptPrefixId + "CreateFixedHeaders()\" ");
             }
         }
         RenderBodyTagStyle();
         WriteStream(HTMLElements.m_closeBracket);
         m_mainStream.Flush();
         stream3.Seek(0L, SeekOrigin.Begin);
         Utility.CopyStream(stream3, m_mainStream);
         stream3.Close();
         stream3 = null;
         WriteStream(HTMLElements.m_closeHtml);
         m_mainStream.Flush();
     }
     else
     {
         Stream mainStream2 = m_mainStream;
         Stream stream4     = m_mainStream = new BufferedStream(m_createAndRegisterStreamCallback("BODY", "html", null, null, willSeek: true, StreamOper.CreateOnly));
         RenderHtmlBody();
         RenderFinalScript();
         stream4.Flush();
         m_mainStream = mainStream2;
         RenderHead();
         stream4.Seek(0L, SeekOrigin.Begin);
         Utility.CopyStream(stream4, m_mainStream);
         m_mainStream.Flush();
     }
 }