我的报告预览正常。但是现在,我需要导出到pdf ...而且我遇到了一个问题:某些单元格的内容被截断到列的内容。
例如,1个单元格应该在预览中显示“BASELINE”...没关系...但在pdf中,它显示“BASEL”。
我一整天都在寻找解决方案而且没有找到任何东西......
当然:我不想在这个单词“BASELINE”的长度上符合列的宽度,因为内容是动态的......相反,我想修复列宽,然后,单元格应该显示类似的东西那个:BASEL INE
任何的想法 ?
提前谢谢(我有点绝望......)
您必须设置一个特殊的PDF发射器选项:
PDFRenderOption options = new PDFRenderOption();
options.setOption(PDFRenderOption.PDF_HYPHENATION, true);
这是因为您将BIRT集成到Java程序中。对于查看器servlet,也可以设置这样的选项,AFAIK,但我不知道如何;也许在URL或使用环境变量。
我遇到过同样的问题。我发现了一个非常好的主题: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文件中
这对我有用。
注意:如果您只需要一次,可以直接在数据中添加此功能...
缺点是:您必须为字符指定最大长度,如果指定一个小的数字来填充列,则列中可以有空格。但是,这是我发现的最佳方式。如果您发现其他内容并且是否有效,请告诉我。