Экспорт отчета
Вьювер позволяет экспортировать отображаемый отчет либо дашборд в различные форматы. Для работы экспорта не требуется дополнительных настроек вьювера. В таблице ниже перечислены все доступные форматы экспорта для отчетов и дашбордов:
Формат экспорта |
Отчеты |
Дашборды |
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() у объекта отчета. Подробное описание находится в разделе Экспортирование отчета из кода.