Jasper reports 当使用文本字段截断时,如何防止jasper reports HTML导出的换行?

Jasper reports 当使用文本字段截断时,如何防止jasper reports HTML导出的换行?,jasper-reports,ireport,Jasper Reports,Ireport,使用iReport 4.5.0,我将设置以下两个属性和值: net.sf.jasperreports.text.truncate.at.char=true net.sf.jasperreports.text.truncate.suffix=… 其目的是在必须截断文本字段时,在文本字段的末尾添加“…”,并且截断决定发生在字符级别,而不是单词级别。当导出为PDF时,这与预期一样有效。然而,当导出到HTML时,最后一个被截断的标记(附加后缀)虽然不总是正确地包装。(即使StretchType设置为

使用iReport 4.5.0,我将设置以下两个属性和值:

  • net.sf.jasperreports.text.truncate.at.char=true
  • net.sf.jasperreports.text.truncate.suffix=…
其目的是在必须截断文本字段时,在文本字段的末尾添加“…”,并且截断决定发生在字符级别,而不是单词级别。当导出为PDF时,这与预期一样有效。然而,当导出到HTML时,最后一个被截断的标记(附加后缀)虽然不总是正确地包装。(即使StretchType设置为“无拉伸”,也会执行此操作。)示例:

如果我更改
net.sf.jasperreports.text.truncate.at.char=false
(使其在单词上而不是字符上中断),它似乎工作得更频繁,但这只是因为分词通常会为后缀留出更多空间。意外的换行仍然伴随着分词出现,特别是如果我增加了给定后缀的长度


我最好的猜测是,HTML导出器度量值并没有精确地计算给定后缀所需的宽度(如果它在计算的话)

  • 有人能确认吗?
  • 关于解决方法有什么建议吗?
  • 似乎当StretchType设置为No Stretch时,HTML导出器也应该设置空白:nowrap。但是,尽管这会阻止行换行,但后缀的结尾将部分隐藏(由于溢出:隐藏样式)。

    “我最好的猜测是HTML导出器度量没有精确计算给定后缀所需的宽度(如果它正在计算它)。”

  • 我确认这确实是原因
  • 但实际上并没有一个简单的解决办法。你的PDF文件很好,所以你做得对。好。。。你做的很多事情都是对的

    在HTML中,你根本不知道呈现文本的字体的确切细节。您当然可以指定字体。但是客户端计算机可能没有它。或者它可能有一个是相同的。。。但不完全一样。或者,客户端可以通过各种客户端覆盖机制选择使用不同的字体或大小

    如果您尝试不同的字体,您应该注意到略有不同的结果。你也许能找到一个更有效的方法。(显然,这并不是100%完美。)

    如果您不使用字体扩展名,那么您应该。如果您使用的是字体扩展,那么可以按降序首选项指定应该在HTML中使用的字体列表。这应该给你足够的控制,让你的行为在很多情况下都是好的。通常,在您关心的所有情况下,您都可以使其变得完美。

    “我的最佳猜测是,HTML导出器度量值没有精确计算给定后缀所需的宽度(如果它正在计算它的话)。”

  • 我确认这确实是原因
  • 但实际上并没有一个简单的解决办法。你的PDF文件很好,所以你做得对。好。。。你做的很多事情都是对的

    在HTML中,你根本不知道呈现文本的字体的确切细节。您当然可以指定字体。但是客户端计算机可能没有它。或者它可能有一个是相同的。。。但不完全一样。或者,客户端可以通过各种客户端覆盖机制选择使用不同的字体或大小

    如果您尝试不同的字体,您应该注意到略有不同的结果。你也许能找到一个更有效的方法。(显然,这并不是100%完美。)

    如果您不使用字体扩展名,那么您应该。如果您使用的是字体扩展,那么可以按降序首选项指定应该在HTML中使用的字体列表。这应该给你足够的控制,让你的行为在很多情况下都是好的。通常,你可以在你关心的所有情况下都做到完美