使用ireport在html报告中显示图像

时间:2012-04-30 09:55:33

标签: java spring jasper-reports

我试了很长时间,使用iReport设计器创建报告。在其中显示所有格式的图像(PDF,Excel,RTF)。但是当我试图以html格式显示时,图像没有显示。我想做什么来解决dis问题。我很久没试过了。任何人都可以帮助我。 以下是我在控制器类中使用的代码,用于html报告中的图像。

 String image = request.getSession().getServletContext().getRealPath("/"); 
Map parameterMap = new HashMap();


 parameterMap.put("datasource", JRdataSource);
        parameterMap.put("Image1",image);
        parameterMap.put("Image2",image);
        parameterMap.put(JRExporterParameter.CHARACTER_ENCODING, "UTF8");
        parameterMap.put(JRHtmlExporterParameter.IMAGES_URI, "../report/image?image=");
        parameterMap.put(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
 //htmlReport bean has ben declared in the jasper-views.xml file
        modelAndView = new ModelAndView("htmlReport", parameterMap);

        return modelAndView;

以下是我的jrxml代码。

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="testreport2" language="java" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <parameter name="Image1" class="java.lang.String"/>
    <parameter name="Image2" class="java.lang.String"/>
    <field name="activePackage" class="java.lang.String"/>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band height="60" splitType="Stretch">
            <staticText>
                <reportElement mode="Opaque" x="0" y="0" width="555" height="56"/>
                <textElement/>
                <text><![CDATA[]]></text>
            </staticText>
            <staticText>
                <reportElement mode="Opaque" x="0" y="2" width="515" height="54" backcolor="#E6E6E6"/>
                <textElement/>
                <text><![CDATA[]]></text>
            </staticText>
            <image scaleImage="Clip" isUsingCache="false">
                <reportElement key="image-1" x="308" y="2" width="187" height="58"/>
                <imageExpression class="net.sf.jasperreports.engine.JRRenderable"><![CDATA[net.sf.jasperreports.engine.JRImageRenderer.getInstance(image-dir"/flower1.png"))]]></imageExpression>
            </image>
            <image scaleImage="Clip" isUsingCache="false">
                <reportElement key="image-1" x="0" y="0" width="226" height="57"/>
                <imageExpression class="net.sf.jasperreports.engine.JRRenderable"><![CDATA[net.sf.jasperreports.engine.JRImageRenderer.getInstance(image-dir"/flower2.png"))]]></imageExpression>
            </image>
        </band>
    </title>
    <pageHeader>
        <band height="35" splitType="Stretch"/>
    </pageHeader>
    <columnHeader>
        <band height="61" splitType="Stretch">
            <staticText>
                <reportElement x="0" y="0" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[activePackage]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="39" splitType="Stretch">
            <textField>
                <reportElement x="0" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{activePackage}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <columnFooter>
        <band height="45" splitType="Stretch"/>
    </columnFooter>
    <pageFooter>
        <band height="54" splitType="Stretch"/>
    </pageFooter>
    <summary>
        <band height="42" splitType="Stretch"/>
    </summary>
</jasperReport>

这两个图像位于webapp / images下。我将这些图像作为参数从控制器类传递到jrxml文件。

图片没有显示。我的代码出错了.Anyhelp将受到高度赞赏。

0 个答案:

没有答案