Hi I am using Sql server Reporting services to create a report and than Exporting it to PPTX using Aspose API. After Export, Evaluation watermark is not going from the Report.
Please find the Code Below
class SlidesExportHelper
{ ///
/// Renders current report to Powerpoint presentation
///
/// The report viewer object.
/// The output presentation format.
/// The output filename.
public static void RenderWithAsposeSlides(Microsoft.Reporting.WinForms.ReportViewer reportViewer, Aspose.Slides.ReportingServices.OutputPresentationFormat format, string filename)
{
//Enable Export to RPL feature
EnableRplRenderExtension(reportViewer);
//create file for our presentation
using (FileStream pptSteam = new FileStream(filename, FileMode.Create))
{
//Instantiate an instance of license and set the license file through its path
Aspose.Slides.License license = new Aspose.Slides.License();
license.SetLicense(“Aspose.Slides.lic”);
//Get status if license is applied or not
bool isLicensed = license.IsLicensed();
if (isLicensed)
{
//Reset the applied license
license.ResetLicense();
}
Aspose.Slides.ReportingServices.RplRenderer renderer = new Aspose.Slides.ReportingServices.RplRenderer();
//start rendering process
//here we are choosing to export in PPT format and providing outputStream
renderer.StartRendering(format);
int page = 1;
//this cycle iterates through all pages of report
while (true)
{
using (MemoryStream rplStream = CreateRplStream(reportViewer, page))
{
//if rplStream is empty then we reached end of report
if (rplStream.Length == 0)
break;
//add report page as slide to the document
renderer.RenderPage(rplStream);
}
page++;
}
//call finish method to flush our newly created presentation to output stream
renderer.FinishRendering(pptSteam);
}
}
///
/// Enables the RPL rendering extension.
/// Be careful because this method alters internal state of ReportViewer class instance
/// and there is no guarantee that this method will work with future version of ReportViewer
///
/// The report viewer.
public static void EnableRplRenderExtension(Microsoft.Reporting.WinForms.ReportViewer reportViewer)
{
object service = null;
if (reportViewer.ProductVersion.StartsWith(“11”))
service = reportViewer.LocalReport.GetType().GetField(“m_processingHost”, BindingFlags.NonPublic | BindingFlags.Instance).GetValue(reportViewer.LocalReport);
else
service = reportViewer.LocalReport.GetType().GetField(“m_previewService”, BindingFlags.NonPublic | BindingFlags.Instance).GetValue(reportViewer.LocalReport);
var extensions = service
.GetType()
.GetMethod(“ListRenderingExtensions”)
.Invoke(service, null);
IList RenderingExtensions = (IList)extensions;
bool rplExportEnabled = false;
foreach (var extension in RenderingExtensions)
{
var name = extension
.GetType()
.GetProperty(“Name”)
.GetValue(extension, null)
.ToString();
if (name == “RPL”)
{
extension
.GetType()
.GetField(“m_isExposedExternally”,
BindingFlags.NonPublic | BindingFlags.Instance)
.SetValue(extension, true);
rplExportEnabled = true;
break;
}
}
if (!rplExportEnabled)
throw new Exception(“Can’t enable RPL export. Please, make sure that you are using ReportViewer 2010 or ReportViewer 2012.”);
}
///
/// Renders specific page to RPL
///
/// The report viewer.
/// The page.
static MemoryStream CreateRplStream(Microsoft.Reporting.WinForms.ReportViewer reportViewer, int page)
{
Warning[] warnings;
var stream = new MemoryStream();
reportViewer.LocalReport.Render(“RPL”,
String.Format(
@"
{0}
{0}
Embedded
", page),
(CreateStreamCallback)delegate { return stream; },
out warnings);
return stream;
}
}