Печать отчета
Во вьювере предусмотрено несколько вариантов печати отчета. Каждый имеет свои особенности, достоинства и недостатки.
Печать будет осуществляться посредством экспортирования отчета в 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::WithPreview |
Печать в HTML формат с предварительным просмотром во всплывающем окне. |
Например, требуется установить режим печати только в PDF формат:
viewer.php |
<?php use Stimulsoft\Viewer\StiViewer; use Stimulsoft\Viewer\Enums\StiPrintDestination;
$viewer = new StiViewer(); $viewer->options->toolbar->printDestination = StiPrintDestination::Pdf; ?>
|
Вьювер имеет возможность полностью отключить печать отчета, если она не требуется. Для этого необходимо установить значение false для свойства showPrintButton:
viewer.php |
<?php use Stimulsoft\Viewer\StiViewer;
$viewer = new StiViewer(); $viewer->options->toolbar->showPrintButton = false; ?>
|
При необходимости выполнения каких-либо действий перед печатью отчета, предназначено событие onPrintReport. В аргументах события будут переданы тип печати отчета, диапазон страниц и сам отчет, отправленный на печать. Допускается изменение диапазона страниц и значений свойств отчета.
Пример выполнения действий на стороне JavaScript клиента перед печатью отчета:
viewer.php |
<?php use Stimulsoft\Viewer\StiViewer;
$viewer = new StiViewer(); $viewer->onPrintReport = 'printReport'; $viewer->process(); ?>
<script> function printReport(args) { if (args.printAction == 'PrintPdf'){ args.pageRange.rangeType = Stimulsoft.Report.StiRangeType.CurrentPage; args.pageRange.currentPage = 1; } } </script>
|
Пример выполнения действий на стороне PHP сервера перед печатью отчета:
viewer.php |
<?php use Stimulsoft\Viewer\StiViewer; use Stimulsoft\Events\StiPrintEventArgs; use Stimulsoft\Report\Enums\StiRangeType; use Stimulsoft\Viewer\Enums\StiPrintAction;
$viewer = new StiViewer(); $viewer->onPrintReport = function (StiPrintEventArgs $args) { if ($args->printAction == StiPrintAction::PrintPdf){ $args->pageRange->rangeType = StiRangeType::CurrentPage; $args->pageRange->currentPage = 1; } }; $viewer->process(); ?>
|
Подробное описание доступных значений аргументов находится в разделе События вьювера.
Предусмотрена возможность распечатать отчет из кода без использования функций вьювера. Подробное описание данного функционала находится в разделе генератора отчетов Печать отчета из кода.