【问题标题】:Dynamic Jasper: Image not displayed after exporting as XLSX动态 Jasper:导出为 XLSX 后不显示图像
【发布时间】:2016-12-01 15:26:22
【问题描述】:

我正在使用JRXlsxExporter将我的 JasperReport 导出为 XLSX 格式。为了创建输出流,我打开了一个 blob 流并将其设置为SimpleOutputStreamExporterOutput。然后在调用exporter.exportReport() 方法后将 blob 保存到 DB。

OutputStreamExporterOutput simpleOutputStreamExporterOutput = new SimpleOutputStreamExporterOutput(blob.setBinaryStream(1));

问题是,报告内容中有一个jpg图片部分。当报告导出到 XLSX 时,“无法显示图像”消息显示在 xlsx 中代替图像,但其余数据正常。

我尝试使用 FileOutputStream 代替 blob 流,包括图像在内的所有内容都可以在导出的 xlsx 中正常显示。但是由于我无法将导出的报告文件保存在应用程序服务器上,而且我必须将其作为 blob 写入数据库,所以我绝对希望使用 blob 流。

  • Jasper 报告版本 - 6.2.0
  • 动态 Jasper 版本 - 5.0.4

我正在使用 DynamicReportBuilder addFirstPageImageBanner() 方法添加图像。

非常感谢任何帮助。谢谢!

这是我请求的 jrxml 文件的一部分。

<title>
        <band height="30"/>
    </title>
    <pageHeader>
        <band height="141">
            <textField>
                <reportElement x="0" y="78" width="290" height="78"/>
                <textElement>
                    <font fontName="Times New Roman"/>
                </textElement>
                <textFieldExpression class="java.lang.String"><![CDATA[$P{reportInfo}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="0" y="58" width="290" height="20"/>
                <textElement>
                    <font fontName="Times New Roman" size="14" isBold="true"/>
                </textElement>
                <textFieldExpression class="java.lang.String"><![CDATA[$P{reportType}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="0" y="38" width="290" height="20"/>
                <textElement>
                    <font fontName="Times New Roman" size="14" isBold="true"/>
                </textElement>
                <textFieldExpression class="java.lang.String"><![CDATA[$P{reportTitle}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="0" y="0" width="290" height="38"/>
                <textElement>
                    <font fontName="Times New Roman" size="18" isBold="true"/>
                </textElement>
                <textFieldExpression class="java.lang.String"><![CDATA[$P{title}]]></textFieldExpression>
            </textField>
        </band>
    </pageHeader>

下面是添加图片的代码:

drb.addFirstPageImageBanner("imagepath" + "imagename", new Integer(197), new Integer(53), ImageBanner.ALIGN_LEFT);

【问题讨论】:

  • 您应该发布 jrxml 文件的部分:字段(如果图像使用带有字段的表达式)声明和 image 元素
  • 嗨,Alex,我正在使用 addFirstPageImageBanner() 方法添加图像。将此信息也添加到我的问题中。问题是它与 FileOutputStream 完全兼容。
  • 你有 jrxml 文件吗?如果是,您应该发布它。您还应该发布 Java 代码
  • 我已经添加了jrxml,以及用于添加图像的java代码。
  • "imagepath" + "imagename" 你使用的是相对路径吗?我认为绝对路径是有效的,对吧?我认为路径有问题

标签: java jasper-reports export-to-excel dynamic-jasper


【解决方案1】:
You can display images in XLS by click 
-> report properties 
-> advanced 
-> edit properties 
 and search for :

net.sf.jasperreports.export.xls.ignore.graphic


and mark it as false 

it will fix the problem .. 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    相关资源
    最近更新 更多