php抓取网页表格信息(BIRT报表设计器的页面设置信息有什么用呢?方法)
优采云 发布时间: 2021-10-15 19:21php抓取网页表格信息(BIRT报表设计器的页面设置信息有什么用呢?方法)
打印报表时,尤其是打印报表时,页面设置信息很重要,比如页边距、纸张尺寸、输出方向等,而且每个报表的相关参数可能不同,所以获取相关参数从具体报道来看。非常正常和合理的想法。
如果使用BIRT作为报表开发工具,报表设计者负责报表制作,BIRT运行时负责处理报表文件。对于浏览器,BIRT后端输出的是网页,不收录页面设置相关信息。浏览器有自己的打印设置选项,不会从网页中读取,但是报表设计器提供了报表设计时页面设置信息的设置界面。因此,我们需要通过运行时 API 手动编写代码,以从特定报表中获取页面设置信息。然后通过其他方式将参数传递给打印机(操作打印机不在本文讨论范围内)。本文通过对BIRT源代码的研究,提供了相关的示例代码。
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方法应该还把这个名字作为参数传入,这个比较奇怪,只有一个页面配置方案,这个名字有什么用?
免责声明:本文原创发表于php中文网。转载请注明出处。感谢您的尊重!如果您有任何疑问,请与我们联系
相关标签:如何从BIRT报告文件中获取页面设置信息(边距、纸张大小、输出方向)