Jasper reports JasperReport在导出为PDF时缩放图像,从而降低质量

Jasper reports JasperReport在导出为PDF时缩放图像,从而降低质量,jasper-reports,ireport,Jasper Reports,Ireport,我有一个用iReport 1.3.0设计的报告。此报告包含多个动态加载的图像。然后我使用jasperunmanager.runReportToPdfFile创建PDF。PDF中的所有内容看起来都很好,但图像显示为缩放 谁能告诉我我做错了什么 谢谢。关于图像 如果将报告另存为HTML,则会注意到徽标显示正确 图像文件(如PNG)是光栅图像:存储为单个像素 而PDF文件主要是矢量化的:其中的元素存储为如何绘制它们的描述。这使得PDF可以按比例缩放,并且可以在任何尺寸下清晰可见 使用矢量格式的光栅图像

我有一个用iReport 1.3.0设计的报告。此报告包含多个动态加载的图像。然后我使用
jasperunmanager.runReportToPdfFile
创建PDF。PDF中的所有内容看起来都很好,但图像显示为缩放

谁能告诉我我做错了什么

谢谢。

关于图像 如果将报告另存为HTML,则会注意到徽标显示正确

图像文件(如PNG)是光栅图像:存储为单个像素

而PDF文件主要是矢量化的:其中的元素存储为如何绘制它们的描述。这使得PDF可以按比例缩放,并且可以在任何尺寸下清晰可见

使用矢量格式的光栅图像可能会产生像素化效果

可能的解决方案 为了方便起见,您有几个选项可以使图像与文本的质量相匹配:

  • 创建一个1200 dpi的徽标版本,放大400%
  • 创建徽标的SVG版本
  • 将图像转换为矢量格式
  • 将图像缩放300%,并将分辨率更改为288 dpi
1200 DPI版本 图像在放大到400%左右之前看起来会很清晰

SVG版本 图像在每种分辨率下都会很清晰。用以下代码替换正常的
XML(确保相应地调整宽度和高度):


将GIF转换为SVG 要将GIF转换为SVG,请首先尝试一种基于web的快速工具,例如:

转换为SVG后,必须使用上面列出的代码来显示徽标

分辨率和比例 见:


从4.0.1版开始,应保留光栅图像分辨率,并且您还可以在使用其他导出选项(xls、rtf、html等)时提高图表的分辨率。默认值仅为非常低的72 dpi

在iReport选项>JasperReport属性编辑中

net.sf.jasperreports.image.dpi300


我刚刚下载并安装了最新版本(4.0.0)。我尝试了报告的预览,但图像仍然按比例显示。我一定缺少一些配置参数,但我不知道是哪一个。请帮忙!在较新版本的JasperReports中,不需要设置
属性(以防您想知道如何在
JRDesignExpression
上设置该属性)。解决方案解决了我的问题。我把图像放大了,效果很好。
<image hAlign="Center" vAlign="Middle">
 <reportElement x="0" y="0" width="179" height="66"/>
 <imageExpression class="net.sf.jasperreports.engine.JRRenderable"><![CDATA[net.sf.jasperreports.renderers.BatikRenderer.getInstance(new java.io.File("/path/to/logo.svg"))]]></imageExpression>
</image>