Habilitar e desabilitar a impressão do lado do cliente para Reporting Services

O botão Imprimir na barra de ferramentas do visualizador de relatórios usa o formato PDF (Portable Document Format) para a impressão do lado do cliente de relatórios do Reporting Services exibidos em um navegador. A nova experiência de impressão remota usa a extensão de renderização de PDF incluída no Reporting Servicespara renderizar o relatório no formato PDF. Você pode baixar o relatório em formato de PDF. Ou, se você tiver um aplicativo instalado para exibir arquivos PDF, o botão de impressão exibirá uma caixa de diálogo de impressão para itens de configuração comuns da página. Isso inclui itens de configuração, como tamanho da página, orientação e visualização do arquivo PDF. Embora a impressão do lado do cliente esteja habilitada por padrão, você pode desabilitar o recurso para impedi-lo de ser usado.

Versões anteriores do Reporting Services usavam um controle ActiveX que exigia o download do servidor de relatório para o computador cliente. Se você atualizar o servidor de relatório para o SQL Server 2016 ou posterior, o controle de impressão não é removido do servidor de relatório ou dos computadores cliente.

A experiência de impressão

Quando você selecionar o botão de imprimir na barra de ferramentas do visualizador de relatórios, a experiência varia de acordo com quais aplicativos de visualização de .PDF você instalou no computador cliente e de qual navegador está sendo usado. Você pode baixar o arquivo PDF ou configurar as opções de impressão de uma caixa de diálogo, ou mesmo fazer ambos, dependendo do computador cliente.

Screenshot of the Report toolbar.

Interação Interface do usuário
A primeira caixa de diálogo é igual para todos os navegadores e permite que você altere as propriedades de layout básico como a orientação. Quando você seleciona Imprimir, a experiência é um pouco diferente dependendo do navegador que estiver utilizando. Screenshot of the first print properties screen.
No Chrome, uma tela de impressão detalhada do navegador se abre. Você pode alterar as configurações de impressão, imprimir e abrir a caixa de diálogo de impressão do sistema operacional. Screenshot of the detailed print properties.Screenshot of the print configuration settings.
Se você tiver um aplicativo de leitor PDF instalado, o botão de impressão abre uma janela de pré-visualização do arquivo PDF e você poderá salvar ou imprimir.
Se não tiver um aplicativo de leitor PDF instalado, há duas experiências do usuário:

O relatório é renderizado automaticamente e usa o processo de download do seu navegador para baixar o arquivo PDF. Observação: quanto mais complicado o relatório for, maior será o tempo de atraso entre a hora em que você selecionar Imprimir e o momento em que você visualizar a notificação de download do seu navegador. Você também pode forçar o download novamente selecionando em Clique aqui para exibir o PDF do seu relatório.

Force o download do PDF selecionando em Clique aqui para exibir o PDF do seu relatório.
Screenshot of the PDF ready notification.

Solucionar problemas de impressão do lado do cliente

Se o botão de impressão da barra de ferramentas no visualizador de relatórios estiver desabilitado, verifique as seguinte instruções:

  • A impressão do lado do cliente está desabilitada para o servidor de relatório no Management Studio. Confira a seção Habilitar e desabilitar a impressão do lado do cliente neste artigo.

  • A extensão de renderização de PDF do SQL Server 2016 (13.x) Reporting Services (SSRS) ou posteriores está desabilitada. Revise a seção <Extension Name="PDF" do arquivo rsreportserver.config.

  • Você está exibindo o relatório no modo de comparação, que usa o antigo mecanismo de renderização HTML4 do SQL Server 2016 (13.x) Reporting Services (SSRS) ou posteriores. A experiência de impressão de PDF requer o mecanismo de renderização HTML 5. Selecione Experimentar pré-visualização na barra de ferramentas.

Screenshot of the Try Preview button.

Habilitar e desabilitar a impressão do lado do cliente

Os administradores do servidor de relatório têm a opção de desabilitar o recurso de impressão remota, definindo a propriedade do sistema do servidor de relatório EnableClientPrinting como False. Essa configuração desabilita a impressão do lado do cliente para todos os relatórios gerenciados por esse servidor. Por padrão, EnableClientPrinting é definido como True. Você pode desabilitar a impressão do lado do cliente das seguintes formas:

  • Para um servidor de relatório no modo nativo:

    1. Inicie o Management Studio com privilégios administrativos.

    2. Conecte-se a uma instância do servidor de relatório no Management Studio.

    3. Clique com o botão direito do mouse no nó do servidor de relatório e depois selecione Propriedades. Se a opção Propriedades estiver desabilitada, verifique se você iniciou o Management Studio com privilégios administrativos.

    4. Selecione Avançado.

    5. Selecione EnableClientPrinting.

    6. Defina como True ou False e selecione OK.

      Screenshot of the EnableClientPrinting option.

  • Para um servidor de relatório no modo do SharePoint:

    1. Na Administração Central do SharePoint, selecione Gerenciamento de Aplicativos.

    2. Selecione Gerenciar aplicativos de serviço.

    3. Escolha o nome do aplicativo de serviço do Reporting Services e selecione Gerenciar na faixa de opções do SharePoint.

    4. Selecione Configurações do Sistema.

    5. Selecione Habilitar Impressão de Cliente. A opção Habilitar Impressão de Cliente está próxima à parte inferior da página.

    6. Selecione OK.

  • Escreva um script ou código para definir a propriedade do sistema do servidor de relatório EnableClientPrinting como False.

O exemplo de script a seguir ilustra uma abordagem para desabilitar a impressão do lado do cliente. Compile e execute o código a seguir Microsoft Visual Basic para definir a propriedade EnableClientPrinting como False. Depois de executar o código, reinicialize o IIS.

Exemplo de script

Imports System  
Imports System.Web.Services.Protocols  
Class Sample  
   Public Shared Sub Main()  
Dim rs As New ReportingService()  
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
        Dim props(0) As [Property]  
        Dim setProp As New [Property]  
        setProp.Name = "EnableClientPrinting"  
        setProp.Value = "False"   
        props(0) = setProp  
        Try  
            rs.SetSystemProperties(props)  
        Catch ex As System.Web.Services.Protocols.SoapException  
            Console.Write(ex.Detail.InnerXml)  
        Catch e as Exception  
            Console.Write(e.Message)  
        End Try  
    End Sub 'Main  
End Class 'Sample  

Mais perguntas? Experimente perguntar no fórum do Reporting Services