Я хотел бы создать веб-страницу с динамическими отчетами с помощью JSP. В основном он должен содержать следующие части:
- Фильтр: пользователь может указать условия фильтра и нажать кнопку фильтра.
- HTML-вывод: Результат работы фильтра можно увидеть здесь. Это одна большая html-страница (или несколько, если одна страница будет слишком большой). Он может содержать ссылки на другие части системы.
- Вывод в формате PDF: пользователь должен иметь возможность сохранить версию отчета в формате PDF для печати или архивирования.
Вместо того, чтобы реализовывать все самостоятельно, я хотел бы использовать библиотеку отчетов Java, поэтому я создал свой отчет, используя JasperReports. Вывод в формате pdf действительно хорош, но экспорт отчета в html не подходит для моих целей.
HTML-экспорт JasperReport создает html-файл с большим количеством встроенного кода и довольно случайными параметрами конфигурации. Например, по умолчанию создается таблица с белым фоном (<table style="... bgcolor="white" ... ">
), которую можно отключить с помощью IS_WHITE_PAGE_BACKGROUND
, с другой стороны, cellpadding="0" cellspacing="0" border="0"
зашиты в тег table
. Также странно (и затрудняет стиль css), что вместо классов span html-файл содержит <span style="font-family: sansserif; color: #000000; font-size: 10.0px;">
для всех моих полей.
Конечно, я могу реализовать html-вывод с помощью JSP, но это означает, что мне нужно спроектировать вывод дважды (один раз в jrxml для JasperReports, один раз в JSP), и я должен заново реализовать функции отчетности (такие как расчет промежуточных итогов, общий расчет, группировка ...), что противоречит принципу DRY.
Какова наилучшая практика для реализации этого? Можно ли улучшить экспорт HTML с помощью JasperReports?