Во вьювере предусмотрено несколько вариантов печати отчета. Каждый имеет свои особенности, достоинства и недостатки.

 

Печать в PDF (Print to PDF)

Печать будет осуществляться посредством экспортирования отчета в PDF формат. К достоинствам можно отнести большую точность расположения и печати элементов отчета по сравнению с остальными вариантами печати. Из недостатков можно упомянуть обязательное наличие установленного в браузере плагина для просмотра PDF файлов (современные браузеры имеют встроенное средство просмотра и печати PDF файлов).

 

Печать с просмотром (Print with Preview)

Печать отчета будет осуществлена в отдельном всплывающем окне браузера в HTML формат. Отчет можно предварительно просмотреть, а затем отправить на принтер или скопировать в другое место в виде текста или HTML-кода. К достоинствам можно отнести кроссбраузерность при печати, отсутствие необходимости установки специальных плагинов. Недостатком является относительно невысокая точность расположения элементов отчета, обусловленная особенностями реализации HTML-форматирования.

 

Печать без просмотра (Print without Preview)

Печать отчета будет осуществлена непосредственно на принтер без предварительного просмотра. После выбора этого пункта меню отображается системный диалог печати. Так как печать в этом режиме осуществляется в HTML формат, то качество печати аналогично качеству печати отчета с предварительным просмотром.

 

Информация

 

Печать отчета осуществляется с использованием встроенных методов используемого браузера, поэтому представление диалогового окна может отличаться в разных операционных системах и браузерах. Также, браузер не позволяет управлять настройками печати из JavaScript кода, поэтому требуемые настройки необходимо будет выполнить в самом диалоговом окне.

 

 

 

Настройки печати отчета

При выборе печати отчета на панели вьювера, отображается меню с выбором варианта печати. Компонент имеет возможность принудительно установить требуемый режим печати. Для этого достаточно установить свойство printDestination в одно из указанных ниже значений из перечисления StiPrintDestination:

 

Наименование

Описание

StiPrintDestination.DEFAULT

При выборе печати будет отображено меню с доступными вариантами печати (значение свойства по умолчанию).

StiPrintDestination.PDF

Печать в PDF формат.

StiPrintDestination.DIRECT

Печать в HTML формат непосредственно на принтер, будет отображен системный диалог печати.

StiPrintDestination.WITH_PREVIEW

Печать в HTML формат с предварительным просмотром во всплывающем окне.

 

 

Например, требуется установить режим печати только в PDF формат:

 

app.py

 

from stimulsoft_reports.viewer import StiViewer

from stimulsoft_reports.viewer.enums import StiPrintDestination

 

viewer = StiViewer()

viewer.options.toolbar.printDestination = StiPrintDestination.PDF

 

 

 

Вьювер имеет возможность полностью отключить печать отчета, если она не требуется. Для этого необходимо установить значение False для свойства showPrintButton:

 

app.py

 

from stimulsoft_reports.viewer import StiViewer

 

viewer = StiViewer()

viewer.options.toolbar.showPrintButton = False

 

 

 

Событие печати отчета

При необходимости выполнения каких-либо действий перед печатью отчета, предназначено событие onPrintReport. В аргументах события будут переданы тип печати отчета и сам отчет, отправленный на печать.

 

app.py

 

from stimulsoft_reports.viewer import StiViewer

from stimulsoft_reports.events import StiReportEventArgs

 

def printReport(args: StiReportEventArgs):

   printAction = args.printAction

   report = args.report

 

viewer = StiViewer()

viewer.onPrintReport += printReport

viewer.onPrintReport += 'printReport'

 

 

viewer.html

 

<script>

  function printReport(args) {

      let printAction = args.printAction;

      let report = args.report;

   }

</script>

 

 

 

Подробное описание доступных значений аргументов находится в разделе События вьювера.

 

 

Печать отчета из кода

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