首页 > 编程语言 >Jasper template遇到的问题

Jasper template遇到的问题

时间:2022-11-09 21:13:53浏览次数:50  
标签:设置 打印 template 遇到 元素 Jasper iframe table page

说明:写在pdf上面的,图片复制太麻烦了,不贴图了

  1. 关于文本内容溢出给定的范围后如何处理。

方法:使用iframe + Position Type: float。

背景:虽然使用Stretch With Overflow,可以使所有内容都打印出来,但是会因为占用了额外的非指定位置,导致其他元素被覆盖。这是因为默认用的使Position Type: Fix relative to top/bottom

说明:类似于JavaScript的div布局,只不过这里用jasper的iframe。

根据前端画页面的经验,先将模板分块,每一块都是一个iframe,给iframe设置为float即可,那么iframe里面的元素超出指定大小后会将iframe撑大,但是因为所有同级的iframe都设置了float,所以会有序排列。

 

  1. 如何根据兄弟元素对齐高度

背景:例如List,或者一个iframe的两个iframe如何根据其中一个iframe的高度也同时拉升自己的高度。

给所有的兄弟元素,包括自己,设置Stretch Type: Relative To Tallest Object(过时)

问题1的中线就是用的这个配置。

 

  1. 如何将List由下面这种情况修改为第二种情况。

在List元素的advance里面,将print Order由默认的垂直改为水平

 

 

  1. 如果打印出page currentPage of countPage

Japser有这个Composite Elements的,就是用pageNumber这个变量,只不过执行时间currentPage设置为now,countPage设置为report。

  1. 如何解决虽然excel等可以正常打印中文,但是pdf就不行呢?

原理不太清楚,网上找的一种方法是:给当前的项目加上特定的字体的ttf文件,需要resources目录下定义proproties和xml以及ttf字体文件,并且jasper只用这种字体即可。

 

 

 

其他

  1. 为什么我不可以用table布局。

……虽然table可以自适应文本高度的,完美解决上方的问题1,但是它不能用来的布局的。要把table看作接收dynamic data的list,而不是前端的table布局。

 

注意点

  1. Edit Page Format可以设置纸张大小从而方便打印机打印。如果用A4纸,一个page使842的高度,但是我所有的内容还没有填充完就把height用完了怎么办?多加几个detail元素,拖动detail的高度就可以使template的height变高。
  2. Edit Page Format没有特殊情况,一般都指定Print Order :Vertial
  3. 新建一个report,默认的元素,诸如header、page header、detail、page footer都是按照docx来的,比如元素定义在page header中,那么每次分页都会重新打印一次。

标签:设置,打印,template,遇到,元素,Jasper,iframe,table,page
From: https://www.cnblogs.com/woyujiezhen/p/16875163.html

相关文章