【发布时间】:2016-04-19 14:41:45
【问题描述】:
JasperReports 库似乎错误地计算了文本字段需要多少新行才能适应其所有内容。在 JasperReports Studio(预览版)中,一切看起来都很好,但从我的应用程序导出为 PDF 时却不行。
我已阅读 JasperReports 的 PDF 常见问题解答,并尝试将报告中的 PROPERTY_FORCE_LINEBREAK_POLICY 设置为 true,但这没有任何区别。我也尝试过各种字体,但是在运行时 Java 抱怨 AWT 中缺少字体,所以我想我的默认字体 (SansSerif) 就可以了。
当我打印“仅英文”版本的报告时,一切看起来都还不错,因为所有文本的长度大约是一半,但是当使用较长的文本时(如下例所示),就会发生此行错误计算。
由于我已尝试使用 JasperReport 的 PDF 常见问题解答中的两个提示,我还能做什么?
【问题讨论】:
-
请注意,每对“标签 - 值”(如买家姓名)都被放入一个单独的框架中,其中名称和值都可以通过溢出(启用选项)进行拉伸,并且它们都有“拉伸到最高的物体”,但据我了解,这会拉伸到该框架中最高的物体,因此例如“买家名称”不应分层 - 标签和值都适合单行,对吧?
-
顶部标题下方的空白行真的很奇怪。它只是单个文本字段 - 没有拉伸到最高的物体或类似的东西。仅启用溢出拉伸。较小的副标题应该在顶部标题的正下方,但它位于另一个空白行之后。
-
您应该为您的报告使用字体扩展名,然后检查您是否与样式(如果已定义)、字体定义和 textField 没有区别,当示例样式定义为非粗体时,我已经看到了这一点,没有粗体 .ttf 的字体扩展,但 textField 中的字体是粗体。
标签: java fonts jasper-reports export-to-pdf