Вьювер позволяет экспортировать отображаемый отчет либо дашборд в различные форматы. Для работы экспорта не требуется дополнительных настроек вьювера. В таблице ниже перечислены все доступные форматы экспорта для отчетов и дашбордов:

 

 

Формат экспорта

Отчеты

Дашборды

Document (Snapshot)

+

+

Adobe PDF

+

+

XPS (XML Paper Specification)

+

-

Microsoft PowerPoint

+

-

HTML

+

+

HTML5

+

-

Text

+

-

Microsoft Word

+

-

Microsoft Excel

+

+

OpenDocument Writer

+

-

OpenDocument Calc

+

-

RTF (Rich Text Format)

+

-

 

Формат данных

Отчеты

Дашборды

CSV (Comma Separated Value)

+

+

JSON (JavaScript Object Notation)

+

+

XML (Extensible Markup Language)

+

+

DBF (dBase/FoxPro)

+

+

DIF

+

+

SYLK (Symbolic Link)

+

+

 

Формат изображения

Отчеты

Дашборды

PNG (Portable Network Graphics)

+

+

JPEG (Joint Photographic Experts Group)

+

+

GIF (Graphics Interchange)

+

+

TIFF (Tagged Image File Format)

+

+

SVG (Scalable Vector Graphics)

+

+

SVGZ (Compressed SVG)

+

+

PCX (Picture Exchange)

+

+

BMP (Windows Bitmap)

+

+

 

 

Событие начала экспорта

При необходимости выполнения каких-либо действий перед экспортированием отчета, предназначено событие onBeginExportReport. Событие будет вызвано после отображения диалогового окна экспорта с настройками. В аргументах события будут переданы тип экспорта отчета, имя файла экспорта, сам отчет, а также все настройки выбранного экспорта. Допускается изменение значений свойств отчета, настроек экспорта, а также имени файла.

 

Пример выполнения действий на стороне JavaScript клиента перед экспортированием отчета:

 

viewer.php

 

<?php

use Stimulsoft\Viewer\StiViewer;

 

$viewer = new StiViewer();

$viewer->onBeginExportReport = 'beginExportReport';

$viewer->process();

?>

 

...

 

<script>

function beginExportReport(args) {

if (args.format == Stimulsoft.Report.StiExportFormat.Pdf) {

args.settings.creatorString = 'My Company Name';

args.settings.embeddedFonts = false;

}

}

</script>

 

 

 

Пример выполнения действий на стороне PHP сервера перед экспортированием отчета:

 

viewer.php

 

<?php

use Stimulsoft\Viewer\StiViewer;

use Stimulsoft\Events\StiExportEventArgs;

use Stimulsoft\Export\Enums\StiExportFormat;

use Stimulsoft\Export\StiPdfExportSettings;

 

$viewer = new StiViewer();

$viewer->onBeginExportReport = function (StiReportEventArgs $args) {

$args->fileName = "MyExportedFileName.$args->fileExtension";

 

if ($args->format == StiExportFormat::Pdf) {

/** @var StiPdfExportSettings $settings */

$settings = $args->settings;

$settings->creatorString = 'My Company Name';

$settings->embeddedFonts = false;

}

};

$viewer->process();

?>

 

 

 

Полный код примера доступен на GitHub.

 

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

 

 

Событие завершения экспорта

При необходимости выполнения каких-либо действий после экспортирования отчета перед его сохранением, предназначено событие onEndExportReport. В аргументах события будут переданы тип экспорта отчета, а также имя и байтовые данные экспортированного файла. Допускается изменение имени и байтовых данных экспортированного файла.

 

Пример выполнения действий на стороне JavaScript клиента после завершения экспортирования отчета:

 

viewer.php

 

<?php

use Stimulsoft\Viewer\StiViewer;

 

$viewer = new StiViewer();

$viewer->onEndExportReport = 'endExportReport';

$viewer->process();

?>

 

...

 

<script>

function endExportReport(args) {

if (args.format == Stimulsoft.Report.StiExportFormat.Html) {

let fileName = args.fileName;

let htmlText = args.data;

}

}

</script>

 

 

 

Пример выполнения действий на стороне PHP сервера после завершения экспортирования отчета:

 

viewer.php

 

<?php

use Stimulsoft\Viewer\StiViewer;

use Stimulsoft\Events\StiExportEventArgs;

use Stimulsoft\Export\Enums\StiExportFormat;

 

$viewer = new StiViewer();

$viewer->onEndExportReport = function (StiReportEventArgs $args) {

$fileName = $args->fileName;

if ($args->format == StiExportFormat::Pdf) {

$htmlText = base64_decode($args->data);

}

};

$viewer->process();

?>

 

 

Информация

 

Байтовые данные передаются на сторону сервера в кодировке Base64, поэтому перед сохранением их необходимо преобразовать в исходный байтовый поток, используя, например, стандартную PHP функцию base64_decode().

 

 

 

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

 

 

Настройки экспорта

Иногда требуется отключить неиспользуемые форматы экспорта отчета, и оставить только нужные. Это позволяет разгрузить интерфейс и упростить использование вьювера. Для отключения неиспользуемых форматов экспортов достаточно установить значение false для соответствующих свойств вьювера, например:

 

viewer.php

 

<?php

use Stimulsoft\Viewer\StiViewer;

 

$viewer = new StiViewer();

$viewer->options->exports->showExportToDocument = false;

$viewer->options->exports->showExportToWord = false;

$viewer->options->exports->showExportToCsv = false;

?>

 

 

 

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

 

viewer.php

 

<?php

use Stimulsoft\Viewer\StiViewer;

 

$viewer = new StiViewer();

$viewer->options->exports->showExportDialog = false;

?>

 

 

 

Полный список доступных опций находится в разделе Настройка вьювера.

 

 

Экспортирование отчета из кода

Для экспортирования отчета из кода без помощи вьювера предназначен специальный метод exportDocument() у объекта отчета. Подробное описание находится в разделе Экспортирование отчета из кода.