JasperReports imageExpression: где хранить изображения?

Имеется проект на Spring Framework, который использует JasperReports для генерации отчётов. Допустим, что в некоторые отчёты нужно вставить картинки. Вопрос: Где хранить изображения?

Есть несколько способов:

  • Складывать картинки где-нибудь в src/main/webapp/resources, а затем в коде получать абсолютный путь к ним с помощью кода вида: servletContext.getResource("/resources/images/myimg1.jpg"),  где servletContext  — это экземпляр класса javax.servlet.ServletContext. В imageExpression  в этом случае будет что-то вида <imageExpression><![CDATA[$P{IMG_DIR}]]></imageExpression> , где IMG_DIR — это параметр шаблона, в который будет передаваться путь к изображению.
  • Складывать картинки в какой-нибудь внешний каталог и указывать абсолютный путь к нему.
  • Складывать картинки в одной из подкаталогов src/main/resources  или src/main/webapp/WEB-INF/classes, а в шаблонах jrxml указывать в imageExpression  путь относительно этих каталогов. Например, <imageExpression><![CDATA["report/images/logo-report.jpg"]]></imageExpression> указывает на src/main/resources/report/images/logo-report.jpg  или src/main/webapp/WEB-INF/classes/report/images/logo-report.jpg  соответственно.

Вы можете выбрать любой из описанных выше способов

Обратите внимание, в статье «Java. JasperReports. Генерация HTML отчёта с картинками и диаграммами» описано, как генерировать HTML-отчёт с включением картинок.

Один комментарий к “JasperReports imageExpression: где хранить изображения?”

  1. Is there any way to attach it to report directly or locate them into report folder to the folders named like _images

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *