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

 

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

Отчеты

Дашборды

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)

+

+

 

 

Для экспортирования отчета необходимо воспользоваться методом exportDocument() у объекта отчета:

 

app.py

 

from stimulsoft_reports.report import StiReport

from stimulsoft_reports.report.enums import StiExportFormat

 

report = StiReport()

report.loadFile(url_for('static', filename='reports/SimpleList.mrt'))

report.render()

report.exportDocument(StiExportFormat.PDF)

 

 

 

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

 

Информация

 

Экспортирование отчета не вызывает его автоматическое построение, поэтому для загруженного шаблона отчета требуется предварительно вызвать метод render(), который построит отчет. Для готовых документов (построенных отчетов) вызов указанной функции не требуется.

 

 

 

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

 

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

Описание

StiExportFormat.DOCUMENT

Сохранение документа (построенного отчета).

StiExportFormat.PDF

Сохранение в Adobe PDF формат.

StiExportFormat.XPS

Сохранение в XPS формат.

StiExportFormat.POWERPOINT

Сохранение в Microsoft PowerPoint формат.

StiExportFormat.HTML

Сохранение в HTML формат.

StiExportFormat.HTML5

Сохранение в HTML5 формат, с использованием элементов SVG разметки.

StiExportFormat.TEXT

Сохранение в текстовый формат.

StiExportFormat.WORD

Сохранение в Microsoft Word формат.

StiExportFormat.EXCEL

Сохранение в Microsoft Excel формат.

StiExportFormat.ODT

Сохранение в OpenDocument Text формат.

StiExportFormat.ODS

Сохранение в OpenDocument Spreadsheet формат.

StiExportFormat.RTF

Сохранение в RichText формат.

StiExportFormat.CSV

Сохранение в CSV формат данных.

StiExportFormat.JSON

Сохранение в JSON формат данных.

StiExportFormat.XML

Сохранение в XML формат данных.

StiExportFormat.DBF

Сохранение в DBF формат данных.

StiExportFormat.DIF

Сохранение в DIF формат данных.

StiExportFormat.SYLK

Сохранение в SYLK формат данных.

StiExportFormat.IMAGE_PNG

Сохранение в изображение PNG формата.

StiExportFormat.IMAGE_JPEG

Сохранение в изображение JPEG формата.

StiExportFormat.IMAGE_GIF

Сохранение в изображение GIF формата.

StiExportFormat.IMAGE_TIFF

Сохранение в изображение TIFF формата.

StiExportFormat.IMAGE_SVG

Сохранение в изображение SVG формата.

StiExportFormat.IMAGE_SVGZ

Сохранение в изображение SVGZ формата.

StiExportFormat.IMAGE_PCX

Сохранение в изображение PCX формата.

StiExportFormat.IMAGE_BMP

Сохранение в изображение BMP формата.

 

 

После экспорта отчета, полученный поток данных будут передан браузеру на скачивание в виде файла. Имя файла и MIME тип данных будет определен автоматически. Предусмотрена возможность отобразить экспортированный отчет сразу в окне браузера (только для PDF, HTML и изображений), для этого необходимо установить аргумент openAfterExport в значение True:

 

app.py

 

report.exportDocument(StiExportFormat.PDF, openAfterExport = True)

 

 
 

Экспортирование отчета на стороне сервера
Для переключения генератора отчетов в режим работы на стороне сервера, необходимо установить свойство отчета engine в значение StiEngineType.SERVER_NODE_JS, весь остальной набор событий и методов для работы с отчетом точно такой же, как и при экспортировании отчета на стороне клиента. При экспорте на стороне сервера, метод exportDocument() вернет байтовый поток данных экспортированного отчета.

 

Пример экспортирования отчета в PDF формат на стороне сервера:

 

app.py

 

from stimulsoft_reports.report import StiReport

from stimulsoft_reports.report.enums import StiEngineType, StiExportFormat

 

report = StiReport()

report.engine = StiEngineType.SERVER_NODE_JS

report.loadFile(url_for('static', filename='reports/SimpleList.mrt'))

report.render()

bytes = report.exportDocument(StiExportFormat.PDF)

 

 

 

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

 

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

 

Пример экспортирования отчета в формат PDF на стороне сервера и сохранение результата в указанную директорию:

 

app.py

 

exportedFilePath = url_for('static', filename='reports/SimpleList.pdf')

bytes = report.exportDocument(StiExportFormat.PDF, filePath = exportedFilePath)

 

 

 

Настройки экспортирования отчета

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

 

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

Класс настроек

StiExportFormat.DOCUMENT

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

StiExportFormat.PDF

StiPdfExportSettings()

StiExportFormat.XPS

StiXpsExportSettings()

StiExportFormat.POWERPOINT

StiPowerPointExportSettings()

StiExportFormat.HTML

StiExportFormat.HTML5

StiHtmlExportSettings()

StiExportFormat.TEXT

StiTxtExportSettings()

StiExportFormat.WORD

StiWordExportSettings()

StiExportFormat.EXCEL

StiExcelExportSettings()

StiExportFormat.ODT

StiOdtExportSettings()

StiExportFormat.ODS

StiOdsExportSettings()

StiExportFormat.RTF

StiRtfExportSettings()

StiExportFormat.CSV

StiExportFormat.JSON

StiExportFormat.XML

StiExportFormat.DBF

StiExportFormat.DIF

StiExportFormat.SYLK

StiDataExportSettings()

StiExportFormat.IMAGE_PNG

StiExportFormat.IMAGE_JPEG

StiExportFormat.IMAGE_GIF

StiExportFormat.IMAGE_TIFF

StiExportFormat.IMAGE_SVG

StiExportFormat.IMAGE_SVGZ

StiExportFormat.IMAGE_PCX

StiExportFormat.IMAGE_BMP

StiImageExportSettings()

 

Формат экспорта дашборда

Класс настроек

StiExportFormat.PDF

StiPdfDashboardExportSettings()

StiExportFormat.HTML

StiHtmlDashboardExportSettings()

StiExportFormat.EXCEL

StiExcelDashboardExportSettings()

StiExportFormat.CSV

StiDataDashboardExportSettings()

StiExportFormat.IMAGE_SVG

StiImageDashboardExportSettings()

 

Для применения настроек экспортирования, необходимо передать подготовленный объект настроек в качестве параметра методу экспорта отчета. Все остальные действия будут выполнены автоматически.

 

Пример экспортирования отчета в формат PDF на стороне сервера, в настройках указываются сведения о компании и разрешается редактирование:

 

app.py

 

from stimulsoft_reports.report import StiReport

from stimulsoft_reports.report.enums import StiEngineType, StiExportFormat

from stimulsoft_reports.export import StiPdfExportSettings

from stimulsoft_reports.export.enums import StiPdfAllowEditable

 

report = StiReport()

report.engine = StiEngineType.SERVER_NODE_JS

report.loadFile(url_for('static', filename='reports/SimpleList.mrt'))

report.render()

 

settings = StiPdfExportSettings()

settings.creatorString = 'Stimulsoft'

settings.allowEditable = StiPdfAllowEditable.YES

 

bytes = report.exportDocument(StiExportFormat.PDF, settings)

 

 

 

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

 

Информация

 

Класс объекта настроек экспорта должен соответствовать формату экспорта, в противном случае приоритетным будет считаться формат, возвращаемый методом getExportFormat() объекта настроек экспорта.