Exporting via HTML instead of MHTML
There was a question on Twitter about how to display a report in HTML instead of MHTML due to some browser issues. Based on the fact that it was MHTML, I’m assuming we are talking about exporting a report as the default report view is HTML. First off, if we look at our export options for a report, we see the following:
HTML isn’t an option. One of the reasons or this is because if you export with HTML, and have items in your report such as images, they wouldn’t be included with the export. With MHTML, the binary of the image can be included and will be displayed properly. So, this is the default export option for HTML to make sure we get everything, and the report looks consistent with what is displayed for an on demand report.
That being said, you can change it. This is done within the rsreportserver.config file. Within this file we include the different renderers that Reporting Services will use.
<Render>
<Extension Name="XML" Type="Microsoft.ReportingServices.Rendering.DataRenderer.XmlDataReport,Microsoft.ReportingServices.DataRendering"/>
<Extension Name="NULL" Type="Microsoft.ReportingServices.Rendering.NullRenderer.NullReport,Microsoft.ReportingServices.NullRendering" Visible="false"/>
<Extension Name="CSV" Type="Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering"/>
<Extension Name="ATOM" Type="Microsoft.ReportingServices.Rendering.DataRenderer.AtomDataReport,Microsoft.ReportingServices.DataRendering" Visible="false"/>
<Extension Name="PDF" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.PDFRenderer,Microsoft.ReportingServices.ImageRendering"/>
<Extension Name="RGDI" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.RGDIRenderer,Microsoft.ReportingServices.ImageRendering" Visible="false"/>
<Extension Name="HTML4.0" Type="Microsoft.ReportingServices.Rendering.HtmlRenderer.Html40RenderingExtension,Microsoft.ReportingServices.HtmlRendering" Visible="false"/>
<Extension Name="MHTML" Type="Microsoft.ReportingServices.Rendering.HtmlRenderer.MHtmlRenderingExtension,Microsoft.ReportingServices.HtmlRendering"/>
<Extension Name="EXCEL" Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRendering"/>
<Extension Name="RPL" Type="Microsoft.ReportingServices.Rendering.RPLRendering.RPLRenderer,Microsoft.ReportingServices.RPLRendering" Visible="false" LogAllExecutionRequests="false"/>
<Extension Name="IMAGE" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRenderer,Microsoft.ReportingServices.ImageRendering"/>
<Extension Name="WORD" Type="Microsoft.ReportingServices.Rendering.WordRenderer.WordDocumentRenderer,Microsoft.ReportingServices.WordRendering"/>
</Render>
One of the properties that you can see is the Visible property. Some of these are set to false by default. This actually lets Reporting Services know if this should be a visible export option. One of the items is for the HTML4.0 renderer.
<Extension Name="HTML4.0" Type="Microsoft.ReportingServices.Rendering.HtmlRenderer.Html40RenderingExtension,Microsoft.ReportingServices.HtmlRendering" Visible="false"/>
By setting visible to true for this item, it then appears as an export option.
This should work good for a subscription operation, but if you just hit export from the browser, it will just pop it up in a new tab as HTML is an accepted format. So, you won’t get the prompt to download. From a browser perspective, you can also get a clean HTML version of the page via URL access:
https://localhost/ReportServer?%2fHelloWorld&rs:Command=Render&rs:Format=HTML4.0&rc:toolbar=false
In this example, you don’t even need the Format parameter as HTML4.0 is the default renderer. You can find more information about the available URL access parameters at this page:
Using URL Access Parameters
https://technet.microsoft.com/en-us/library/ms152835.aspx
Adam W. Saxton | Microsoft Escalation Services
https://twitter.com/awsaxton
Comments
Anonymous
December 10, 2011
Thanks Adam, for these very usefull links...Anonymous
June 28, 2012
Nice but was hoping that the html was still embeded in the email; came out as an attachmentAnonymous
June 28, 2012
embedded sp Ok I found <EmbeddedRenderFormats> <RenderingExtension>HTML4.0</RenderingExtension> </EmbeddedRenderFormats> which seems to work. ThanksAnonymous
August 24, 2015
This was very useful and helped me to understand my issue. Thanks