Stimulsoft Reports

↑ 5.6 PDF и печатные формы на клиенте · ← Предыдущая

Обязательно~3 мин чтенияУровень: middle

Зачем это на собесе

Коммерческие дизайнеры отчётов встречаются в корпоративных системах: как встроить и чем ограничены.

Объяснение

Stimulsoft Reports — коммерческий пакет для создания отчётов: JS-библиотеки (Viewer, Designer, Engine), версии для .NET, PHP, Java. Отчёт — шаблон (.mrt, JSON) с источниками данных, группировками, диаграммами, вычислениями.

import { Stimulsoft } from "stimulsoft-reports-js/Scripts/stimulsoft.reports";
import "stimulsoft-reports-js/Scripts/stimulsoft.viewer";
 
Stimulsoft.Base.StiLicense.key = import.meta.env.VITE_STIMULSOFT_KEY;
 
const report = new Stimulsoft.Report.StiReport();
report.loadFile("/templates/invoice.mrt");                        // или loadDocument(json) из API
const data = new Stimulsoft.System.Data.DataSet("Data"); data.readJson(invoiceJson);
report.regData("Data", "Data", data);                              // данные в шаблон
 
const viewer = new Stimulsoft.Viewer.StiViewer(new Stimulsoft.Viewer.StiViewerOptions(), "viewer", false);
viewer.report = report; viewer.renderHtml("viewerContainer");      // просмотр, печать, экспорт (PDF, Excel, Word)
 
// Экспорт без показа
report.renderAsync(() => report.exportDocumentAsync((pdf) => save(pdf, "invoice.pdf"), Stimulsoft.Report.StiExportFormat.Pdf));

Компоненты: Designer (веб-конструктор шаблонов для пользователей), Viewer (просмотр/печать/экспорт), Engine (рендер на клиенте или сервере).

Схемы использования:

СхемаПлюсыМинусы
Рендер на клиентенет нагрузки на сервер, интерактивностьтяжёлый бандл, данные на клиенте, зависимость от браузера
Рендер на сервере (.NET)единый результат, безопасность данных, большие объёмыинфраструктура
Шаблоны хранятся в БД/APIредактирование без релизаверсионирование, права

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

Альтернативы: FastReport, DevExpress Reports, Telerik Reporting, Crystal Reports, JasperReports; open-source — pdfmake, QuestPDF/PDFsharp (сервер), Paged.js, @react-pdf (для React).

Нюансы и подводные камни

  • Лицензия коммерческая: ключ в клиентском коде виден — учитывайте условия использования.
  • Размер библиотек — загружайте лениво (import()), только на страницах отчётов.
  • Персональные данные в шаблонах/данных на клиенте — вопросы безопасности.
  • Совместимость версий Designer/Viewer/Engine и формата .mrt.
  • Кастомизация внешнего вида ограничена.

Практика

  1. Встройте Viewer и покажите отчёт по данным из API.
  2. Реализуйте экспорт в PDF и Excel.
  3. Оцените плюсы и минусы клиентского и серверного рендера для вашей задачи.

Вопросы с ответами

Связанные темы