gpt4 book ai didi

jasper-reports - Jasper Report 在填充整个文本字段之前截断文本

转载 作者:行者123 更新时间:2023-12-04 20:36:40 28 4
gpt4 key购买 nike

我的 PDF 报告有问题,在填充文本字段之前,文本字段中的字符串被截断。丢失字符的数量 (5-6) 不足以超过 textField 的末尾.

我添加了 text.truncate.at.char属性添加到报表元素,但字符串仍被截断(在显示比以前更多的字符之后)。
我还检查了是否有其他报表元素阻塞了文本字段的末尾,但没有。
最后,我尝试了一个我发现的潜在修复方法,并在行尾添加了“\n”,但这也无济于事。

在 iReport 设计器中显示整个字符串。

PDF报告
Example text field in PDF report

iReport 设计器预览
Example text field in iReport Designer

有谁知道如何让 Jasper Reports 使用文本字段中的整个空间?

PS:由于客户的意愿,不允许文本溢出到下一行。
我正在使用 Jasper Reports 5.5.2。

编辑:
textField是子报表中详细信息带的一部分。我不允许共享整个 .jrxml,但这是 textField 的代码:

<textField>
<reportElement style="Unicode" mode="Opaque" x="0" y="2" width="467" height="17" forecolor="#FFFFFF" backcolor="#00007F" uuid="e810d7a4-6802-4620-af2f-4c385a9e80a6">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true"/>
</reportElement>
<textElement verticalAlignment="Middle" markup="none">
<font size="10" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[" More Details - "+$F{Description} + " ("+$F{Id}+")"]]></textFieldExpression>
</textField>

描述是可变长度的,Id 是一个 GUID。在这种情况下, textField 中仍然应该有足够的空间。显示整个 GUID。

这是 isStretchWithOverflow="true" 的另一个屏幕截图:

PDF report (stretchWithOverflow true)

文本现在完全显示在第一行,但 textField较大,客户不接受。

最佳答案

为什么在 pdf 和 iReport 设计器中不同?

这是因为 iText(创建您的 pdf 的库)正在尽其“最大努力”来呈现您在 中指示的字体。 jrxml 并且它不够好(它正在使用另一种更大的字体......)。

避免这些问题您需要使用 font extensions 并在 style 上检查您的设置和 textElement
Checklist to rendered font correctly in pdf

How to add font extension using iReport

OP 在 comment 中解决:

安装字体扩展,删除 isBold="true"textElement , 因为样式设置为 textElementisBold="false"

关于jasper-reports - Jasper Report 在填充整个文本字段之前截断文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34271686/

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