Что такое формат файла JASPER?
Файл .jasper представляет собой скомпилированный шаблон отчета JasperReports - бинарный артефакт, создаваемый движком JasperReports при компиляции исходного файла дизайна отчета .jrxml. Эта взаимосвязь зеркально отражает компиляцию в Java: .jrxml является исходным кодом, а .jasper - скомпилированным результатом, аналогично файлу .class, скомпилированному из исходника .java.
Технически файл .jasper является стандартным потоком сериализованных объектов Java с магическими байтами AC ED 00 05, содержащим сериализованный объект net.sf.jasperreports.engine.JasperReport. Этот граф объектов включает скомпилированный байт-код выражений Groovy или Java, структуры полос (bands) отчета, определения стилей, объявления параметров и сопоставления полей. Поскольку формат опирается на встроенную сериализацию объектов Java, идентификатор сериализации (UID) привязан к версии библиотеки JasperReports - файл .jasper, скомпилированный в JR 6.x, может не загрузиться в JR 7.x и должен быть перекомпилирован из оригинального исходника .jrxml.
Файл .jasper не может генерировать выходные данные самостоятельно. Ему требуется движок JasperReports для заполнения данными и последующего экспорта в целевой формат, такой как PDF, XLSX или HTML. Отчеты проектируются в Jaspersoft Studio (которая заменила прекращенную в 2014 году iReport) и выполняются внутри JasperReports Server или любого Java-приложения, использующего библиотеку JasperReports.
Проект JasperReports был создан в 2001 году. Компания Jaspersoft была приобретена TIBCO в 2014 году, а TIBCO, в свою очередь, была поглощена Cloud Software Group в 2022 году.
Безопасность и защита
РИСК: MEDIUMФайлы .jasper содержат встроенный скомпилированный байт-код Java (классы выражений). Злонамеренно созданный файл .jasper может использовать уязвимости десериализации Java (формат сериализации Java исторически подвержен атакам; см. CVE-2015-4852 и связанные цепочки гаджетов). Загружайте файлы .jasper только из доверенных источников в контролируемых средах. В JasperReports 6.3+ были приняты меры по снижению рисков; держите библиотеку в актуальном состоянии.
Детали формата
в двух словахПрограммы, открывающие файлы JASPER
JasperFillManager.fillReport() в коде Java для заполнения данными, затем экспортируйте в PDF/XLSX/HTML через JasperExportManager. JasperFillManager. Технические подробности
глубокая спецификация| Тип формата | Бинарный поток сериализованных объектов Java (скомпилированный шаблон отчета) |
| Магические байты | AC ED 00 05 (заголовок потока сериализации объектов Java) |
| Порядок байтов | Big-endian (спецификация сериализации Java) |
| Кодировка | Бинарная (формат Java ObjectOutputStream) |
| Корневой сериализованный класс | `net.sf.jasperreports.engine.JasperReport` |
| Типичный размер файла | 10 КБ - 5 МБ (зависит от встроенных ресурсов подотчетов) |
| Исходный формат | Компилируется из `.jrxml` (XML-дизайн отчета) |
| Совместимость версий | UID сериализации привязан к версии библиотеки JasperReports; несоответствие мажорных версий требует перекомпиляции из `.jrxml` |
| Вложенный контент | Скомпилированный байт-код выражений Groovy/Java, структуры полос, определения стилей, дескрипторы параметров и полей |
| Требования к среде выполнения | Движок JasperReports - заполнение через JasperFillManager, экспорт через JasperExportManager |
| Цели экспорта | PDF, XLSX, HTML, DOCX, CSV, ODS и другие через JasperExportManager |
| Платформа | Windows, Linux, macOS (любая платформа с JVM) |
| Выпущен | 2001 (JasperReports 0.1) |
| Последняя версия | JasperReports 7.x (2024) |
| Спецификация | jasperreports.sourceforge.net |
Конвертации JASPER
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах JASPER.
Часто задаваемые вопросы
Как запустить файл .jasper, чтобы получить PDF?
JasperFillManager.fillReport(jasperFile, params, dataSource), а затем JasperExportManager.exportReportToPdfFile(jasperPrint, outputPath). В Jaspersoft Studio также есть встроенная функция предпросмотра и экспорта.Можно ли открыть файл .jasper без Java?
Почему мой файл .jasper выдает ошибку сериализации после обновления JasperReports?
serialVersionUID класса JasperReport могло измениться между версиями. Перекомпилируйте отчет из исходного кода .jrxml, используя новую версию JasperReports.В чем разница между .jrxml и .jasper?
.jrxml - это редактируемый человеком XML-исходник дизайна отчета; .jasper - это скомпилированная бинарная форма для выполнения. Их связь подобна паре .java → .class в Java.