当前位置: 首页 > 知识库问答 >
问题:

Jasper报表在填充整个文本字段之前截断文本

佴阳曦
2023-03-14

我有一个问题与我的PDF报告,其中一个字符串在一个文本字段被截断之前填充文本字段。缺少的字符数量(5-6)将不足以超过textfield的末尾。

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

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

<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>

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

共有1个答案

宗沛
2023-03-14

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

为了避免这些问题,您需要使用字体扩展,并检查styletextelement上的设置

在pdf中正确呈现字体的核对表

 类似资料:
  • 使用text field value editor我将一个带有条件的文本添加到文本字段中(注意if是使用JasperSoft studio的字段编辑器构造的,所以if(...)代码是自动生成的,我只给出了值“pippo”和“pluto”)

  • 场景:我有一个jasper报告,在详细信息带内有多个文本字段。每个文本字段都具有以下属性: 位置:浮动 伸展类型:相对于最高对象 详细信息溢出时打印:false 溢出伸展:true null 问题:我希望所有的文本字段能够延伸在下一页以及。如果我使用属性'print When Detail overflows:true',那么这将导致文本字段“重印”,数据重复。那不是我的本意。我希望能够将文本字段

  • 我目前使用引导表(http://bootstrap-table.wenzhixin.net.cn/)与引导可编辑扩展(https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/editable)创建一个表与可编辑的字段。我注意到,当一个字符串包含qoutes时,例如:这是一个“测试”,字符串在第一个“测试”中被截

  • 在所示的报告中,黑色的文本是静态的,红色的文本是将由Java动态替换为某些值的字段。 在上图中,第1行和第2行我没有问题。 但对于这一段,我不知道该用什么?我应该使用静态文本框还是文本字段?如果我使用部分静态文本框和部分动态,它变得笨拙和难以保持行间距。 因此,请建议如何在jasper studio 5.6中设计以下报告。

  • 当我将jasper报表导出到CSV文件时,如果一个文本字段包含新的行字符,CSV中的记录将用两行表示,而不是一行。在jasper报告中有什么设置可以忽略文本字段中出现的新行字符吗?我们使用iReport来设计jasper报表。任何形式的帮助都是感激的。谢谢