Включение и отключение клиентской печати для служб Reporting Services

Кнопка печати на панели инструментов средства просмотра отчетов использует формат переносимого документа (PDF) для печати отчетов служб Reporting Services на стороне клиента, просматриваемых в браузере. В новом интерфейсе удаленной печати используется расширение отрисовки PDF, которое входит в состав служб Reporting Services, для отображения отчета в формате PDF. Вы можете скачать pdf-форму отчета. Кроме того, если у вас установлено приложение для просмотра PDF-файлов, кнопка печати отображает диалоговое окно печати для общих элементов конфигурации страницы. К ним относятся такие элементы конфигурации, как размер страницы, ориентация и предварительная версия PDF-файла. Хотя по умолчанию клиентская печать допускается, эту функцию можно отключить.

В предыдущих версиях служб Reporting Services использовался элемент activeX, необходимый для скачивания на клиентский компьютер с сервера отчетов. При обновлении сервера отчетов до SQL Server 2016 или более поздней версии элемент управления печатью не удаляется с сервера отчетов или клиентских компьютеров.

Интерфейс печати

При выборе кнопки печати на панели инструментов средства просмотра отчетов взаимодействие зависит от того, какие приложения просмотра PDF вы установили на клиентском компьютере и какой браузер вы используете. Учитывая конфигурацию клиентского компьютера, вы сможете скачать PDF-файл, настроить в диалоговом окне параметры печати или выбрать оба варианта.

Screenshot of the Report toolbar.

Взаимодействие Пользовательский интерфейс
Первое диалоговое окно одинаково для всех браузеров и позволяет изменять базовые свойства макета, такие как ориентация. При выборе кнопки "Печать" интерфейс немного отличается в зависимости от используемого браузера. Screenshot of the first print properties screen.
В Chrome откроется подробный экран печати браузера. Здесь можно изменить параметры печати, распечатать файл или открыть стандартное для операционной системы диалоговое окно печати. Screenshot of the detailed print properties.Screenshot of the print configuration settings.
Если у вас установлено приложение чтения PDF, кнопка печати открывает окно предварительного просмотра PDF-файла и вы можете сохранить или распечатать.
Если у вас нет установленного приложения чтения PDF, существует два взаимодействия с пользователем:

Отчет автоматически отрисовывается и использует процесс скачивания браузеров для скачивания PDF-файла. Примечание. Чем сложнее отчет, тем дольше задержка между выбранным временем нажатия кнопки "Печать " и при отображении уведомления о загрузке браузера. Чтобы просмотреть PDF-файл отчета, вы также можете принудительно загрузить его еще раз, щелкнув здесь.

Принудительно загрузите PDF-файл, нажав кнопку "Щелкните здесь", чтобы просмотреть PDF-файл отчета.
Screenshot of the PDF ready notification.

Устранение неполадок с печатью на стороне клиента

Если кнопка печати на панели инструментов средства просмотра отчетов отключена, проверьте следующие инструкции:

  • Печать на стороне клиента отключена для сервера отчетов в Management Studio. См. раздел "Включение и отключение печати на стороне клиента" в этой статье.

  • Модуль подготовки отчетов SQL Server 2016 (13.x) reporting Services или более поздней версии (SSRS) отключается. Просмотрите <Extension Name="PDF" раздел rsreportserver.config файла.

  • Вы просматриваете отчеты в режиме сравнения, в котором используется старый обработчик отчетов SQL Server 2016 (13.x) Reporting Services или более поздней версии (SSRS) HTML4. Для печати в формате PDF требуется механизм визуализации HTML5. Выберите " Попробовать предварительную версию " на панели инструментов.

Screenshot of the Try Preview button.

Включение и отключение клиентской печати

Администраторы сервера отчетов могут отключить функцию удаленной печати, установив для системного свойства сервера отчетов значение EnableClientPrinting False. Этот параметр отключает печать на стороне клиента для всех отчетов, управляемых этим сервером. По умолчанию EnableClientPrinting задано значение True. Вы можете запретить печать на стороне клиента следующими способами.

  • Для сервера отчетов в собственном режиме:

    1. Запустите Management Studio с правами администратора.

    2. Подключение экземпляр сервера отчетов в Management Studio.

    3. Щелкните правой кнопкой мыши узел сервера отчетов и выберите пункт "Свойства". Если параметр "Свойства" отключен, убедитесь, что вы запустили Management Studio с правами администратора.

    4. Выберите Дополнительно.

    5. Выберите EnableClientPrinting.

    6. Установите значение True или False, а затем нажмите кнопку "ОК".

      Screenshot of the EnableClientPrinting option.

  • Для сервера отчетов в режиме интеграции с SharePoint:

    1. В SharePoint Central Администратор istration выберите "Управление приложениями".

    2. Выберите "Управление приложениями-службами".

    3. Выберите имя приложения службы Reporting Services и нажмите кнопку "Управление " на ленте SharePoint.

    4. Выберите Системные параметры.

    5. Выберите Включение печати на стороне клиента. Параметр Включение печати на стороне клиента расположен в нижней части страницы.

    6. Нажмите ОК.

  • Напишите скрипт или код, чтобы задать для системного свойства EnableClientPrinting сервера отчетов значение False.

Следующий образец скрипта иллюстрирует один из способов отключения клиентской печати. Скомпилируйте и запустите следующий код Microsoft Visual Basic, чтобы задать для свойства EnableClientPrinting значение False. После выполнения кода перезапустите IIS.

Пример скрипта

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  

Есть еще вопросы? Посетите форум служб Reporting Services.