SSRS - Disabling export options (eg. PDF) for individual reports

You can hide PDF button globally in a specific config file here:

"InstallPath\Reporting Services\ReportServer\rsreportserver.config"

For more information, there is already a topic about this on StackOverflow.

Please check for more answers here: ReportViewer - Hide PDF Export


You can use Pre_render event in Report Viewer.

Take a look at this post, it is the source of the following code

Example Remove save As in SSRS

protected void ReportViewer1_PreRender(object sender, EventArgs e)
{
    DisableUnwantedExportFormat((ReportViewer)sender, "Excel");
    DisableUnwantedExportFormat((ReportViewer)sender, "Word");
} 

public void DisableUnwantedExportFormat(ReportViewer ReportViewerID, string strFormatName)
{
    FieldInfo info;
    foreach (RenderingExtension extension in ReportViewerID.LocalReport.ListRenderingExtensions())
    {
        if (extension.Name.Trim().ToUpper() == strFormatName.Trim().ToUpper())
        {
            info = extension.GetType().GetField("m_isVisible", BindingFlags.Instance | BindingFlags.NonPublic);
            info.SetValue(extension, false);
        }
    }

}

Just in case nobody else said it out loud before here or in linked articles:

The neatiest global solution is to find the rendering engines in the RS config file (mine sits in: C:\Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config), go to xml key: Extensions > Render and insert following property at the end of each entry you want to hide:

Visible="false"

Example:

<Extension Name="XML" Type="Microsoft.ReportingServices.Rendering.DataRenderer.XmlDataReport,Microsoft.ReportingServices.DataRendering" Visible="false"/>

Alternatively put <!-- and --> (HTML comment markers) at the beginning and end of the entry.

For individual reports those functions will do the trick.