ireport 显示数据库图片

来源:互联网 发布:新东方考研网络 编辑:程序博客网 时间:2024/05/16 04:02

例如:数据库图片字段PICTURE_ATTACH类型为blob,在邦定字段时,

设置ireport中字段(Fields)PICTURE_ATTACH属性:

该字段类型 Field Class设置为 java.io.InputStream

然后添加一个图片来显示该图片字段,选择图片,设置属性:

属性image expression设置为 $F{PICTURE_ATTACH}

属性Expression class 设置为java.io.InputStream

 

Jasperreport 导出pdf 粗体,宋体,黑体字体设置

1.为了显示中文,需要在ireport中设置文本属性:

   font中选中宋体,

   pdf font 选中strong-light,

   pdf-encode 选中 UniGB-UCS2-H (Chinese Simplified)

   Pdf Embedded true

2.在导出pdf时,需要宋体或黑体中文加粗或斜体时需要设置如下

  Map fontMap = new HashMap();

  // 宋体,加粗,非斜体的参数设置,宋体不需要引入字体文件,如果需要斜体的话,把false值变为true即可
  fontMap.put(new FontKey("宋体", true, false), new PdfFont("STSong-Light",
    "UniGB-UCS2-H", true, true, false)); 

 

 //黑体的话,在ireport的Font中选中黑体,加粗,还要引入字体文件simhei.ttf,该文件可从C:\WINDOWS\Fonts中获得
  FontKey key = new FontKey("黑体", true, false); //黑体,true表示加粗,false表示非斜体,如果需要变为斜体,只需变为true即可
  PdfFont font = new PdfFont("c:\\simhei.ttf" "Identity-H", true, true, false); //该false值表示非斜体,如果需要变为斜体,只需变为true即可
  fontMap.put(key, font);

  exporter.setParameter(JRExporterParameter.FONT_MAP, fontMap);

 

jasperrepor导出大数据量数据时,减小占用大量内存实现方法如下:

  //report virtualizer"可以用来序列化临时数据到硬盘上来优化内存的使用. 
  //第一个参数2表示放入内存中的页数,如果超过2页,第3页以后的数据,都会放到硬盘的文件夹/reports/tmp下,

  //第二个参数表示临时文件存放的目录

  JRFileVirtualizer virtualizer = new JRFileVirtualizer(2, sc.getRealPath("/reports/tmp"));  

  //设置该参数
  parameters.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);

  jasperPrint = JasperFillManager.fillReport(jasperReport,parameters, dataSource);


当字段显示的数据太多,自动换行的话,需要设置属性Stretch with overflow 为钩选,如果需要同行的其他显示字段和该换行字段一样高的话,设置其它同行显示字段的属性Stretch Type为 Relative to band height;如果该换行的显示字段内容出现换行跨页的情况,需要给其它的同行显示字段的属性Print when detail overflows设置为钩选状态,这样才能保证高度同行显示内容高度一样。(注意:如果改换行跨页显示的内容字体设置为宋体的话,在导出rtf格式时,换行数据可能会被遮挡,需要设置为默认字体,我想可能是字体不同导致计算高度有误)

原创粉丝点击