浏览源代码后,我找到了解决方案。
JRXML imageexpression标签:
<band height="79" splitType="Stretch"><image scaleImage="Fillframe" isLazy="true" onErrorType="Blank"> <reportElement uuid="3340bf0f-8471-45e9-8ea4-bdf44a7c0e68" x="0" y="0" width="150" height="69"/> <imageexpression ><![CDATA["image.jpg"]]></imageexpression></image>
Java代码段:
FileResolver resolver = new FileResolver() {@Overridepublic File resolveFile(String filename) { return new File("/some/path");}};InputStream jasperfile = getClass().getClassLoader().getResourceAsStream("file.jasper");LocalJasperReportsContext ctx = new LocalJasperReportsContext(DefaultJasperReportsContext.getInstance());ctx.setClassLoader(getClass().getClassLoader());ctx.setFileResolver(resolver);JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperfile);JasperFillManager fillmgr = JasperFillManager.getInstance(ctx);JasperExportManager exmgr = JasperExportManager.getInstance(ctx);JasperPrint jasperPrint = fillmgr.fill(jasperReport, parameters, beanColDataSource);ByteArrayOutputStream pdfBytes = new ByteArrayOutputStream();exmgr.exportToPdfStream(jasperPrint, pdfBytes);您必须创建一个新的上下文并将其传递给JasperFillManager和JasperExportManager。



