對於圖片模版和列表模版相對就簡單了,可以參考幫助文檔,下邊我也只做簡單的介紹了
對於文檔中的餅狀圖、柱狀圖,我是在導入數據的時候,直接根據數據生成了相應的圖片,然後保存在文件服務器,並把路徑保存到數據庫中
圖片模版:{{@var}}
BufferedImage picture = ImageIO.read(new FileInputStream(picturePath)); //獲取圖片對象
//設置圖片的大小爲原圖的3/4
reportDatas.put("intestinal_pattern_result", new PictureRenderData(picture.getWidth() * 3 / 4, picture.getHeight() * 3 / 4, picturePath));
列表模版:{{*var}}
剛開始考慮的參考文獻那裏使用列表模版的,但使用過程中發現poi-tl的列表模版,不能設置隱藏列表項前邊的特殊符號(默認是圓點)。後來就退而求其次,將所有列表項拼成一段文字,每項之間使用\n進行分割
reportDatas.put("ReferenceList",getReferences(references));
//references 參考文獻信息列表
private TextRenderData getReferences(List<ReportReference> list) {
TextRenderData renderData = new TextRenderData();
StringBuffer sb = new StringBuffer();
for (ReportReference reportReference:list) {
sb.append(reportReference.getContent()+"\n");
}
renderData.setText(sb.toString());
return renderData;
}