我在Jasper 4.5.0中使用Struts 2.2.1和Jasper 2.2.1插件。并在jboss 5.1上运行我的webapp
我试图在报告的标题上显示我的logo.png,但我似乎无法显示它。
我尝试过在网上发布的各种解决方案。但似乎无法让它发挥作用。
在jrxml文件中我有:
<imageExpression class="java.lang.String"><![CDATA[$P{LOGO_OPEN}"]]></imageExpression>
在我的动作课中,我有:
final String path ServletActionContext.getServletContext().getRealPath("/");
final String imageUrl = path + "images/graphics/header.png";
reportParams.put("LOGO_OPEN", imageUrl);
Struts.xml文件在其操作中具有以下参数:
<result name="success" type="jasper">
<param name="location">/jasper/itineraryDetails.jasper</param>
<param name="dataSource">itineraryDetailsList</param>
<param name="format">PDF</param>
<param name="reportParameters">reportParams</param>
<param name="contentDisposition">attachment;filename="tripDetails.pdf"</param>
</result>
提前致谢
答案 0 :(得分:0)
您可以尝试做的不是将String传递到图像的路径,而是传入实际的Image。尝试将您的参数更改为:
<parameter name="LOGO_OPEN" class="java.lang.Object"/>
并将您的图片表达式设为:
<imageExpression><![CDATA[$P{LOGO_OPEN}]]></imageExpression>
并将您的操作类中的代码更新为:
final String path ServletActionContext.getServletContext().getRealPath("/");
final String imageUrl = path + "images/graphics/header.png";
ImageIcon image = new ImageIcon(imageUrl);
reportParams.put("LOGO_OPEN", image.getImage());