我的报告预览正常。 但是现在,我需要导出到pdf ...,但是我遇到了一个问题:某些单元格的内容被截断为列的格式。
例如,1个单元格应该显示“ BASELINE” ...在预览中还可以...但是在pdf中,它显示“ BASEL”。
我整天都在寻找解决方案,但没有找到任何东西...
当然:由于内容是动态的,因此我不想使该列的宽度适合此单词“ BASELINE”的长度。 相反,我想固定列宽,然后该单元格应显示如下内容: 巴塞尔 INE
有什么想法吗?
预先感谢(有点绝望...)
答案 0 :(得分:0)
您必须设置特殊的PDF发射器选项:
PDFRenderOption options = new PDFRenderOption();
options.setOption(PDFRenderOption.PDF_HYPHENATION, true);
这是将BIRT集成到Java程序中的情况。 对于查看器servlet,也可以设置AFAIK这样的选项,但是我不知道如何设置。也许在URL上或使用环境变量。
答案 1 :(得分:0)
我有同样的问题。我发现了一个很好的话题:http://developer.actuate.com/community/forum/index.php?/topic/19827-how-do-i-use-word-wrap-in-report-design/?s=173b4ad992e47395e2c8b9070c2d3cce
这会将字符串拆分为所需的给定字符数:
要添加functions.js
的函数(例如)。为了让您知道,我在报表项目中创建了一个文件夹:一个用于报表,一个用于模板,一个用于库,另一个用于资源,我在资源文件夹中添加了这个js文件。
/**
* Format a long String to be smaller and be entirely showed
*
*@param longStr
* the String to split
*@param width
* the character number that the string should be
*
*@returns the string splited
*/
function wrap(longStr,width){
length = longStr.length;
if(length <= width)
return longStr;
return (longStr.substring(0, width) + "\n" + wrap(longStr.substring(width, length), width));
}
您将不得不在报告中添加此js文件:在属性->资源-> Javascript文件
这对我有用。
注意:如果只需要一次,则可以直接在数据中添加此功能...
此操作的缺点:您将必须指定字符的最大长度,如果您指定一个较小的数字来填充该列,则该列中可以有空格。 但是,这是我发现的最好方法。让我知道您是否找到其他东西并且它是否有效。