第1章 将报表导出为图片格式

报表的导出默认情况下是以文件的格式,如Excel、Csv、Rtf、Pdf、Ods,当需要将报表导出为图片格式时,可以通过调用Report-ImageAction来实现。

1.1 Report-ImageAction调用样例代码

导出图片可通过两种方法进行实现。

1.1.1 在报表展现页面点击图片导出按钮进行导出

在报表展现页面ClientShow.jsp中添加图片导出按钮,在展现报表时,可以通过点击按钮将报表以图片格式导出,实现的具体步骤为:

在报表展现页面ClientShow.jsp中,在resultForm内添加“导出image”按钮,调用JS函数resultOutImage,代码如下:

<form id="resultForm" name="resultForm" method="post" action="">
<div id='exportBar'  style="width:99%;float:right;margin-bottom: 4px;">
<input type="button" value="导出image" onclick="resultOutImage(resultForm,'true')"/>
…
</form>

运行效果如图1所示

1

编写JS函数resultOutImage,代码如下

function resultOutImage(resultForm, needProgressBar) {
     var act = "Report-ImageAction.do";
     resultForm.target = "printIFrame";
     resultForm.action = WEB_APP_NAME+'/'+act;
     resultForm.submit();
}

变量WEB_APP_NAME是当前目录路径。

执行效果如图2所示

2

1.1.2 直接输入URL地址进行导出

在知道报表ID并且不需要进行报表展示的情况下,想直接将报表以图片的格式进行导出,可以直接输入URL地址调用Report-ImageAction来实现。

以上图中例子为例,直接输入URL地址:http://10.4.53.105:8080/report/Report-ImageAction.do?reportId=acb1cde1-37a3-473c-8a5b-57a8e12f7efb,显示效果如图3所示

3

1.1.2.1 缩放比例

图片导出的默认大小为报表原始大小的2倍,可以通过向URL中追加scale参数来设定导出图片的缩放比例。

如要导出3倍大小的“客户信息统计表”, URL地址:http:// 10.4.44.53:8082/report/Report-ImageAction.do?reportId=7e00b950-6b97-41b5-bb97-4ca35d046175 &scale=3。

1.1.2.2 导出格式

图片导出有单张图片和zip包两种形式。Zip包中存放分页导出的多张图片。

可以通过向URL中追加isSinglePage参数来设定导出图片的格式。

  • 单张图片:true
  • Zip包:false

如要导出zip格式的“客户信息统计表”, URL地址:http:// 10.4.44.53:8082/report/Report-ImageAction.do?reportId=7e00b950-6b97-41b5-bb97-4ca35d046175 &scale=2&isSinglePage=false

1.2 图片导出API使用说明

Report-ImageAction是UniEAP Report中提供的图片导出的应用,用户可以通过使用API更灵活的运用图片导出功能。

以下按照步骤对关键的API进行说明。

1.取得报表引擎

ReportEngine engine = ReportManager.create();

2.创建上下文对象

Map context = new HashMap(3);

3.新建环境对象

Environment env = new ThreadLocalEnvironment();

4.将必要参数保存到上下文对象中

1)环境对象

ReportContextUtil.setContext(context, ReportContext.ENV, env);

2)缓存ID,此参数非必须

ReportContextUtil.setContext(context, ReportContext.CACHEID,cachedId);

5.取得报表

report = engine.getReport(reportId, params, context);

reported :报表ID
params : 报表参数的键值对
context :上下文对象
上下文中放入图片缩放比例参数

ReportContextUtil.setContext(context,ReportContext.IMAGE_EXPORT_SCALE, scale);

scale:图片缩放比例,可以转换为整数的字符串

6.上下文中放入图片导出格式参数

ReportContextUtil.setBooleanContext(context,eportContext.IMAGE_EXPORT_ISSINGLEPAGE, isSinglePage);

isSinglePage:导出图片格式。false表示以zip包形式导出,true表示以单张图片形式导出。

7.导出图片

report.exportToImage(null, context);
List list = (List) context.get("IMAGE_LIST");

list中存放的是java.awt.image.BufferedImage对象。单张图片导出时list.size() = 1;以zip包形式导出时list.size() > 1。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""