码迷,mamicode.com
首页 > 其他好文 > 详细

从BIRT报表文件中获取页面设置信息(页边距、纸张大小、输出方向)的方法

时间:2017-05-16 17:29:57      阅读:1895      评论:0      收藏:0      [点我收藏+]

标签:方向   tom   运行   地方   tengine   put   design   nbsp   配置信息   

 从BIRT报表文件中获取页面设置信息(页边距、纸张大小、输出方向)的方法 
 

报表打印时,尤其是套打的报表,页面设置信息非常重要,比如页边距,纸张大小,输出方向等,而且每个报表的相关参数有可能不同,因此相关参数从具体报表中获取是一个非常正常而且合理的想法。

如果采用BIRT作为报表的开发工具,报表设计器负责报表的制作,BIRT运行时负责处理报表文件,对于浏览器来说,BIRT后端输出的是网页,并不包含页面设置相关信息,浏览器有自己的打印设置选项,也不会从网页中读取,但是报表设计器在报表设计时提供页面设置信息的设置界面,因此我们需要通过运行时API手工写代码从具体报表中获取页面设置信息,然后再通过其他方式将参数传递给打印机,相关的样例代码。

BIRT报表设计器的页面设置信息在主页选项卡所对应的属性面板中体现,代码:

IReportEngine birtEngine = ...;
Map moduleOptions = new HashMap();
moduleOptions.put(IModuleOption.RESOURCE_FOLDER_KEY,sc.getRealPath("/"));
IReportRunnable runnable = birtEngine.openReportDesign(reportFileName,null,moduleOptions);

IMasterPage simpleMasterPage = runnable.getDesignInstance().getReport().getMasterPage("Simple MasterPage");
String pageType =(String) simpleMasterPage.getUserProperty("type");//纸张类型
Double height = 0.0;
Double width =0.0;
//如果是自定义纸张类型,需要获取纸张的宽和高
if("custom".equalsIgnoreCase(pageType)){
DimensionValue heightDV = (DimensionValue) simpleMasterPage.getUserProperty("height");
DimensionValue widthDV = (DimensionValue) simpleMasterPage.getUserProperty("width");
height = heightDV.getMeasure();
width = widthDV.getMeasure();
}
String orientation = (String) simpleMasterPage.getUserProperty("orientation");//打印输出方向 landscape:横向,portrait:纵向

DimensionValue topMarginDV = (DimensionValue)simpleMasterPage.getUserProperty("topMargin");
double topMargin = topMarginDV.getMeasure();//上边距
String unit = topMarginDV.getUnits();//单位
疑问:这里面有一个感觉比较奇怪的地方,就是主页的属性编辑器中有一个名称,这个名称可以修改,默认为Simple MasterPage,如果要获取这个页面配置信息,getMasterPage方法也要把这个名称作为参数传入,这个就比较奇怪,只有一个页面配置方案,这个名字有什么用呢?

从BIRT报表文件中获取页面设置信息(页边距、纸张大小、输出方向)的方法

标签:方向   tom   运行   地方   tengine   put   design   nbsp   配置信息   

原文地址:http://www.cnblogs.com/xuxiaoqian/p/6862109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!