Имеется проект на 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-отчёт с включением картинок.
Is there any way to attach it to report directly or locate them into report folder to the folders named like _images