Jasper reports Jasper报告中的图像表达式URL

Jasper reports Jasper报告中的图像表达式URL,jasper-reports,Jasper Reports,我想在我的JasperReports jrxml文件中嵌入一个图像。我有这个目录结构 Tomcat Root webapps reports -->images --> company_logo.jpg -->reports -->sample.jasper -->WEB-INF -->classes 我试着这样做,认为这是相对于我的报告上下文根 …这也是 但它总是说从位置JRLoader加载字节时出错

我想在我的JasperReports jrxml文件中嵌入一个图像。我有这个目录结构

Tomcat Root
 webapps
  reports
   -->images
    --> company_logo.jpg
   -->reports
    -->sample.jasper
   -->WEB-INF
    -->classes
我试着这样做,认为这是相对于我的报告上下文根


…这也是


但它总是说从位置
JRLoader
加载字节时出错

我试过这样做,但我有点困惑为什么我的前两次尝试没有成功

这真的是在JasperReports中嵌入图像的方式吗?你需要提供整条路吗?我认为应该有一个页面相对 什么



我对正确的方法有点困惑。

应该可以。路径是相对于.jasper文件的。

有时最好使用file.separator:
“ima”+file.separator+“logo.jpg”
您需要创建一个字符串类型的参数,例如CONTEXT,并从JSP发送servlet上下文:

parameters.put("CONTEXT",this.getServletContext().getRealPath("/"));
现在,在报告中使用以下参数:

$P{CONTEXT}.toString()+"reports/images/logo.png"
这同样适用于子报告或其他web资源,例如:

$P{CONTEXT}.toString()+"reports/OrdenCompraAlmacen_Items.jasper"

我希望它有用。

将您的图片放在以下结构中:

webapps
  reports
      -->reports
          -->sample.jasper
 -->WEB-INF
      -->classes
          -->images
              --> company_logo.jpg

<imageExpression class="java.lang.String">
    <![CDATA["company_logo.jpg"]]>
</imageExpression>
webapps
报告
-->报告
-->贾斯珀先生
-->WEB-INF
-->班级
-->图像
-->company_logo.jpg

使用.jrxml当使用带有映像的绝对路径时,将部署打包的jarfilr时,您将获得:

java.lang.IllegalArgumentException: name
at sun.misc.URLClassPath$Loader.findResource(Unknown Source) ~[na:1.8.0_121]
at sun.misc.URLClassPath.findResource(Unknown Source) ~[na:1.8.0_121]
at java.net.URLClassLoader$2.run(Unknown Source) ~[na:1.8.0_121]
at java.net.URLClassLoader$2.run(Unknown Source) ~[na:1.8.0_121]
尝试将资源加载为:

<imageExpression><![CDATA[this.getClass().getResourceAsStream("/img/mdg_logo.jpg")]]></imageExpression>

在jasper report IDE的图像表达式中使用以下表达式,以了解jrxml的图像属性和相对图像路径

相应地改变w.r.t路径

getClass().getResource("META-INF/resources/webjars/Bank/themes/default/images/Logo.png").openStream()


这样,路径就相对于项目的当前工作目录。“.”指当前工作目录

需要注意的一点是,文件名和路径区分大小写!当Spring正在动态编译Jasper报告文件时,这对我来说不起作用。我不得不求助于英语描述的技巧。是一个纯英语的网站。你可以去看看是否有一个网站或建议,在你的语言。为掌握上述表达是好的,如何子报告作品像一个魅力!它对我有用!!!谢谢即使我从数据库加载路径:hmParams.put(“CONTEXT”,pathReceta.getValor());然后我需要添加一个额外的“/”,比如:$P{CONTEXT}.toString()+“/reports/images/logo.png”