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

 

Печать в 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::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();

?>

 

 

 

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

 

 

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

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