gpt4 book ai didi

jasper-reports - JasperReport 在导出为 PDF 时缩放图像,从而损失质量

转载 作者:行者123 更新时间:2023-12-04 04:29:50 24 4
gpt4 key购买 nike

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

谁能告诉我我做错了什么?

谢谢。

最佳答案

关于图像

如果您将报告保存为 HTML,您会注意到 Logo 正确显示。

PNG 等图像文件是光栅图像:存储为单个像素。

而 PDF 文件主要是矢量化的:其中的元素存储为如何绘制它们的描述。这允许 PDF 以任何大小进行缩放和清晰易读。

使用矢量格式的光栅图像可能会导致像素化效果。

可能的解决方案

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

  • 创建 1200 dpi 的 Logo 版本,放大 400%。
  • 创建 Logo 的 SVG 版本。
  • 将图像转换为矢量格式。
  • 将图像缩放 300% 并将分辨率更改为 288 dpi。

  • 1200 DPI 版本

    在 400% 左右变焦之前,图像看起来很清晰。

    SVG 版本

    图像在每个分辨率下都会看起来很清晰。更换正常 <image...>带有以下代码的 XML(请务必相应地调整宽度和高度):
    <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>

    将 GIF 转换为 SVG

    要将 GIF 转换为 SVG,首先尝试使用基于 Web 的快速工具,例如: http://vectormagic.com

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

    分辨率和比例

    看:
  • https://stackoverflow.com/a/39320863/59087
  • http://www.webdevelopersjournal.com/columns/ajs_resolution.html
  • 关于jasper-reports - JasperReport 在导出为 PDF 时缩放图像,从而损失质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4657238/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com