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); } }
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(); } }