首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用textfield截断时防止jasper-reports HTML导出中断行?

如何在使用textfield截断时防止jasper-reports HTML导出中断行?
EN

Stack Overflow用户
提问于 2012-02-03 15:05:47
回答 1查看 4.7K关注 0票数 1

使用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导出度量没有精确地计算给定后缀所需的宽度(如果它正在计算它)。

  1. Can任何人confirm?
  2. Any关于workaround?

的建议

似乎在StretchType设置为“无扩展”的情况下,HTML导出程序可能也应该设置空白:nowrap。然而,尽管这会阻止行的包装,但后缀的结尾将被部分隐藏(由于溢出:隐藏样式)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-03 17:26:08

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

  1. 我确认这就是原因。

但并没有一个简单的解决办法。你的PDF是好的,所以你做了正确的事情。好吧..。你做了很多正确的事情。;-)

在HTML中,你不知道--以一种非常基本的方式--呈现文本的字体的精确细节。您当然可以指定字体。但客户端机器可能没有它。也可能有一样的.但不完全一样。或者客户端可以通过不同的客户端覆盖机制选择使用不同的字体或不同的大小。

如果您尝试不同的字体,您应该注意到略有不同的结果。你可能会找到一个更好的工作更经常。(显然,这并不是百分之百完美。)

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9130777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档