我的PDF报告出现问题,在填写文本字段之前,文本字段中的字符串被截断。丢失的字符数量(5-6)不足以超过textField
的末尾。
我将text.truncate.at.char
属性添加到报表元素,但字符串仍然被截断(显示比以前更多的字符)。
我还检查了是否有其他报告元素阻止了文本字段的结尾,但是没有
最后,我尝试了一个潜在的解决方案,我发现并添加了#34; \ n"到最后一行,但这也没有帮助。
在iReport Designer中显示整个字符串。
PDF报告
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"
的另一个屏幕截图:
文本现在完全显示在第一行,但textField
更大,客户不接受。
答案 0 :(得分:3)
这是因为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
,因为设置为textElement
的样式为isBold="false"