Легкий механизм отчетности Java

Я ищу легкий механизм сообщений java, который будет встроен в приложение апплета.

Мой первый вариант - Jasper Reports, но банку больше 2 Мб, немного слишком тяжелую (и слишком раздутую) для моих нужд. Я не знаю, есть ли модульное распределение яшмы, с функциональностью, разделенной на несколько банок (например, рендеринг html, pdf, excel, компиляция, время выполнения и т.д.).

Мне нужно просмотреть отчет с помощью Swing и распечатать его. Экспорт в PDF является плюсом.

Ответ 1

Jasper Reports включает в себя банку с основной функциональностью для предварительного просмотра и печати отчетов. Он упакован как jasperreports-x.x.x-applet.jar, с около 350k.

Ответ 2

Я знаю, что это немного поздно, но с вашими требованиями кажется, что это идеальная подгонка - это решение для отчетности, которое компания, для которой я работаю, выделяется: i-net Clear Reports (используется для i-net Crystal-Clear).

  • Легкий и простой просмотрщик (аналогично программе просмотра PDF)
  • Очень простой в использовании API
  • Может экспортироваться в кучу различных форматов, включая PDF
  • Поддерживает любой источник данных JDBC, а также ручную настройку данных
  • Может запускать шаблоны Crystal Reports
  • Мы также предлагаем бесплатный и полностью функциональный конструктор отчетов

Проверьте это и сообщите нам, что вы думаете.

Ответ 3

Смотрите NextReports Engine с примерно 300 КБ. Дизайнер NextReports БЕСПЛАТНО для использования.

Ответ 4

Если вы не найдете лучшего решения, должно быть возможно создать разделенный JAR файл для Jasper Reports. Предполагается, что инструмент GenJar может создавать JAR файл на основе его статических зависимостей.

Давным-давно, я использовал инструмент Obfuscation Zlix "Classmaster", который дал вам возможность отсеивать классы, которые не были использованы. Я думаю, что это могло бы даже лишить неиспользованные методы, хотя моя память немного туманна. (Я использовал его на закрытом исходном продукте..., который с тех пор исчез с IP-черной дыры.)

EDIT: еще один параметр ProGuard, который выполняет обфускацию и удаление, как Classmaster, за исключением того, что он является открытым исходным кодом. (К сожалению, они, похоже, неправильно сконфигурировали ссылку на свой сайт SF, но ссылка выше работает.)

Конечно, если Jasper Reports использует Class.forName(), вам нужно будет идентифицировать все соответствующие классы, чтобы добавить их в качестве "корневых" зависимостей для используемого инструмента для удаления. Кроме того, вам нужно будет посмотреть лицензию Jasper Reports, чтобы убедиться, что вам разрешено "распространять" удаленный JAR файл.

Ответ 5

Почему 2Mb слишком велика для серверной библиотеки? Докмоз имеет размер банки размером менее 500 тыс., Но требует OpenOffice на сервере, поэтому он меньше в одном направлении и больше в другом. Java не будет загружать 2Mb Jasper в память, если вы не используете все функции/классы.

Ответ 6

IMHO Chunk Templating engine является лучшим. Файл jar имеет 180 КБ! и поддерживать IF и итерацию. Как это здорово!