【问题标题】:Jasper missing word when page breaks分页时 Jasper 缺少单词
【发布时间】:2016-01-17 21:42:16
【问题描述】:

当我将 jasper 结果导出为 PDF 时,我遇到了一个小问题。 我对我使用的字体(Century Gothic)使用以下配置:

我还将字体配置为粗体/斜体/粗斜体。

无论如何,当我在 jasper 中看到预览时,我的文档有以下结果:

您可以看到在第一页的末尾有“uw”这个词。 但是当我导出 PDF 时,我得到以下结果: 实际上,“uw”这个词不再出现在第一页的末尾,也没有出现在第二页的开头,它已经消失了。

你对这个问题有什么想法吗?

我在网上查了一下,这个问题似乎与错误的字体配置有关,但就我而言,我认为这不是问题,因为 PDF 字体在视觉上与 Jasper 预览中的字体匹配。

【问题讨论】:

    标签: fonts jasper-reports export-to-pdf


    【解决方案1】:

    我有点猜测需要查看您的 .jrxml(最好包含在问题中)但这可能是问题所在。

    您的文本字段太小,无法以您在 pdf 中使用的字体显示所有文本,它会被 jasper 导出报告截断

    textField上设置isStretchWithOverflow="true"

    或者做大一点

    关于 isStretchWithOverflow 的注意事项

    由于部分拆分功能,可以很好地管理高度拉伸元素:除了极少数例外(即列和页脚),报告部分也可以拉伸超出初始指定高度, 并拆分到下一页(参见元素中的 spliType 属性)。

    具有延迟评估的文本字段不会拉伸以获取所有表达式的内容。这是因为文本元素高度是在生成报告部分时计算的,即使引擎稍后返回文本字段的文本内容,元素高度也不会适应,因为这会破坏已经创建的布局。 水平填充报表模板时,详细信息部分内的动态文本字段不会延伸到其整个文本内容,因为这可能会导致后续详细信息部分的水平轴未对齐。细节带实际上与页脚和列脚的行为相同,在使用水平填充时保留其声明的高度。

    因此,在页脚和列脚中,isStretchWithOverflow="true" 只能在带高的情况下工作。

    【讨论】:

    • 就像你说的,我试图让文本字段更大:从 165.80 毫米到 167.92 毫米,现在文本出现在 pdf 导出中。但是我的文本字段有 isStretchWithOverflow="true",所以我认为这就足够了。无论如何,我们如何确定 167.92 毫米的新尺寸足以应对所有可能的情况(假设我们不知道输入中的文本会是什么样子?)
    • 好吧,它可能会拉伸,但它会超出页面(您使用的是哪个波段的页脚?),我建议您将其设置得非常高并将文本与底部对齐....大约 ; )
    • 查看编辑,如果您使用列或页脚,则不能超出带高,请解决或切换带...
    • 实际上我的报告(主报告)只有一个带“详细信息 1”,在这个带中,我在顶部有 4 个文本字段,在底部有 6 个子报表。每个子报表内部都有 2/3 的文本字段。创建问题的文本位于其中一个子报告中。所有文本字段和子报表都在“浮动”中。子报表中的拆分类型定义为“立即”,以避免其他拆分定义出现空白。
    • 切换band是指使用多个Detail band而不是将所有子报表放在一个Detail band中吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多