jasper报告3.1.4 pdf导出缺少2列报告中的最后一行

时间:2015-09-02 10:17:49

标签: fonts jasper-reports export-to-pdf

我有一个包含静态文本的报告,该报告位于2列和2页,带有样式文本(一些单词必须为粗体,斜体,带下划线),必须以Arial字体导出为PDF格式。

问题:列的最后一行/两行消失(虽然它们有空间可供打印)。我无法发布文本信息,因为它是一份合法的官方文件。

我尝试过: 1.将Arial字体设置为导出器的字体映射:

JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, _stream);
FontKey keyArial = new FontKey("Arial", false, false);  
PdfFont fontArial = new PdfFont("Helvetica","Cp1252",false); 

FontKey keyArialBold = new FontKey("Arial", true, false);  
PdfFont fontArialBold = new PdfFont("Helvetica-Bold","Cp1252",false);

Map fontMap = new HashMap();
fontMap.put(keyArial,fontArial);
fontMap.put(keyArialBold,fontArialBold);
exporter.setParameter(JRExporterParameter.FONT_MAP,fontMap);

,这样可以正确显示样式文本(粗体,斜体和下划线)。

  1. 将net.sf.jasperreports.export.pdf.force.linebreak.policy设置为true:Text wrapping issue in generated pdf file
  2. ,但这没有做任何事......

    1. 以防第一次尝试(nr 1.)仍然是一个问题(因为pdf预览仍然没有正确显示样式文本)我从Windows安装Arial字体到iReport,导出它并将其添加到iReport的classpath和项目的WEB-INF \ lib文件夹(我遵循了本教程:http://javaskeleton.blogspot.fr/2010/12/embedding-fonts-into-pdf-generated-by.html)。
    2. ,没有可见效果

      1. 将顶部和底部边距设置为0px
      2. ,没效果

        1. 从浏览器保存生成的报告,然后使用Acrobat Reader XI
        2. 打开它

          ,行仍然缺失

          以下是该报告的规范:

          我使用iReport 3.6.1兼容3.1.4。

          该报告适用于使用java 1.4的项目

          页面格式:A4纵向,(尺寸以像素为单位)顶部10,底部10,左侧20,右侧20,列2,顶部宽度275,空间5

          我有两个重叠的居中标题(文本字段),跨越2列,在表达式上打印参数。

          我有两个组,每个页面只有一个标题带。每个标题带都有两个重叠的文本字段,这些字段在相同参数上具有相同的Print When Expression。第二个乐队以专栏开头开始。字段伸展到乐队的中间,拉伸类型=相对于乐队高度,打印时细节溢出=真,拉伸溢出=真。字段中的文本几乎覆盖了两个页面的容量 - 它们填充两个页面上的两列(在第二页末尾有回车符,第x / x页有最后一行)。我用了#34; \ n&#34;为样式文本添加回车符和<style isBold=\"true\" isUnderline=\"true\" isItalic=\"true\"></style>(当然,Markup =字段上的样式设置)。

          报告以IE v 11.0.9600.17914导出。我机器上安装的Acrobat Reader是版本XI。

3 个答案:

答案 0 :(得分:0)

当文本字段的行显示在页面的末尾时,似乎存在一些与文本字段相关的问题。 如果允许,请尝试更改字体大小。

类似问题: http://community.jaspersoft.com/jasperreports-library/issues/2874-0 http://community.jaspersoft.com/questions/844276/text-field-missing-last-line-mingliu-and-font-size-less-10

答案 1 :(得分:0)

我相信这是一个错误,我遇到了类似的问题。 尝试在静态文本的最后行后添加换行符(“\\ n”或其他适用于您的行)。这有助于我的情况。

答案 2 :(得分:0)

在两列报告中,使用Jasper版本6.1.1时,我遇到了完全相同的问题。最初,我只是通过在HTML格式的文本末尾插入<br/>来解决该问题。它适用于第二列,但不适用于第一列(我花了更长的时间才意识到它也缺少一行!)。

我尝试创建字体扩展名,但没有解决。 然后我注意到我使用的是“ 比例”行距,大小为0.7:

<textElement textAlignment="Center" markup="none">
  <font size="10" isBold="true"/>
  <paragraph lineSpacing="Proportional" lineSpacingSize="0.7"/>
</textElement>

删除<paragraph>元素可以解决问题,我的报告现在在两列中显示所有行。

重要提示:根据业务需要,我无法缩小文字范围。我坚信这是Jasper PDF生成器中的错误。