pdf中的Birt导出不会包裹长线

问题描述 投票:1回答:2

我的报告预览正常。但是现在,我需要导出到pdf ...而且我遇到了一个问题:某些单元格的内容被截断到列的内容。

例如,1个单元格应该在预览中显示“BASELINE”...没关系...但在pdf中,它显示“BASEL”。

我一整天都在寻找解决方案而且没有找到任何东西......

当然:我不想在这个单词“BASELINE”的长度上符合列的宽度,因为内容是动态的......相反,我想修复列宽,然后,单元格应该显示类似的东西那个:BASEL INE

任何的想法 ?

提前谢谢(我有点绝望......)

pdf birt
2个回答
0
投票

您必须设置一个特殊的PDF发射器选项:

PDFRenderOption options = new PDFRenderOption();
options.setOption(PDFRenderOption.PDF_HYPHENATION, true);

这是因为您将BIRT集成到Java程序中。对于查看器servlet,也可以设置这样的选项,AFAIK,但我不知道如何;也许在URL或使用环境变量。


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文件中

enter image description here

这对我有用。

注意:如果您只需要一次,可以直接在数据中添加此功能...

缺点是:您必须为字符指定最大长度,如果指定一个小的数字来填充列,则列中可以有空格。但是,这是我发现的最佳方式。如果您发现其他内容并且是否有效,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.