今天,楚明给大家整理一些如何打开jsp文件 jsp怎么转换成pdf内容,让我们花点时间看看吧!
商用报表工具大部分都提供这个功能,应用中可以通过集成报表工具来获取相应的能力
我们就以润乾报表为例来看一下如何在应用中添加通用查询功能
为什么以润乾报表为例呢,因为润乾报表 3 高! 专业报表 20 年,功能好,手艺高;用的人多,市场占有率高;价格低、性价比高
整体说明润乾通用查询页面由通用查询模块(上半部分) 和报表模块(下半部分) 两个独立部分组合而成
) 通用查询模块(上半部分)的核心包括元数据 JSON 和查询 JSON
如上图中,通用查询模块的左边部分是由 “元数据 Json+ 通用查询标签(commonQuery)”生成,用户拖拽完后生成的右边部分最终会生成“查询 JSON”, 然后报表模块解析后输出报表
集成步骤1 集成应用包并配置授权把润乾标准的 j2ee 应用包,拷贝到自己的应用目录下
注意:web.xml 文件不能拷贝,而是打开润乾的 web.xml 文件,把其中的内容拷贝到您的 web.xml 文件中并按要求的顺序合并
打开 [WEB 应用根目录]
/WEB-INF/raqsoftConfig.xml 文件,配置授权和数据源信息
分别在安装目录下找到以下三个 jsp 文件,后续步骤会陆续用到这些文件,
1、通用查询页面 cqIndex.jsp(路径:demo
aqsoftguidejsp);
2、查询模块页面 cq.jsp(路径:demo
aqsoftguidejsp)
3、报表模块页面 cqReport.jsp(路径:demo
eportJsp)
通用查询页面 (cqIndex.jsp)由查询模块(cq.jsp)和报表模块 (cqReport.jsp) 两部分组成,模块间相互独立,互不影响
2 准备元数据 JSON 并配置标签元数据 JSON 的生成方式有很多种,本例以使用直接提供 json 字符串为例,初始化通用查询模块
编辑 cq.jsp,使用 json 字符串生成元数据 JSON:
String metadata = “[{name:‘group1’,fields:[{name:‘EID’,title:‘员工编号’},{name:‘GENDER’,title:‘性别’},{name:‘SALARY’,title:‘工资’}]}]”;
然后在 jsp 中定义 Tag 标签raqsoft:commonQuery的属性及其值,用 Tag 标签完成通用查询的解析及运算,按用户配置的属性要求将 HTML 文件流输出到客户端
3 解析查询 JSON点击查询后会生成一个 json 串,通称查询 JSON,通过集算器脚本(润乾独有的开源计算引擎)解析该 json,然后把结果传递给报表
示例:新建脚本文件 QueryDS.dfx,内容如下:
在 cqReport.jsp 中已将查询 json 赋值给了 queryJSON 参数,因此需在集算器脚本中定义名为 queryJSON 的参数,用于接收通用查询返回的查询 json:
4 制作报表模块展示数据新建报表 Query.rpx,使用上一步的集算器脚本作为数据集,报表模板如下:
数据集定义:
参数定义:
5 发布报表并查看在 cqReport.jsp 中定义报表标签
然后浏览器中访问通用查询的主页面 cqIndex.jsp
到此一个完整的通用查询功能就集成完毕了,可以自由定义查询条件了
拖拽左上角列出的元数据 json 中的指标到右侧,对指标进行查询、汇总、条件过滤等操作,点击查询按钮,结果报表就出来了
更多的,数据库数据怎么生成 json,动态元数据 json 怎么做,集算器脚本还能做什么,可以参考: 通用查询控件使用方法 - 乾学院
jsp怎么转换成pdf最近做了一个奇葩的需求,研究了一下Java纯后端生成PDF报表的方案,顺便将研究的方案做个总结复盘,分享一下。
需求分析:Java后端定时任务统计汇总成报表数据,并生成PDF格式的报表文件,并通过邮件、企业微信等发送给指定接收人。报表界面包含动态文字说明、折线图、饼图、条形图等图表,界面效果和前端生成的界面相同。
功能难点:前端要生成样式好看的图表比较简单,像Echarts这些前端工具都有现成的功能来完成。但是现在的需求是后端定时任务生成报表文件,报表界面的渲染都必须有后端来完成,由于缺少前端的用户操作动作,也无法在前端生成图表的图片后传到后端来。
方案一:
使用FreeMarker+iText生成PDF文件。
原理和流程:
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。
iText是一种生成PDF报表的Java组件。通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超链接显示或下载得到生成的报表,这样就很好的解决了B/S系统的报表处理问题。
具体的流程如下:
缺点:这种方案只能生成很简单的Table模板,由于iText对html的要求非常严格,太复杂的界面会报错,所以无法生成Echarts的图表。
方案二:
SwingUI+JFreeChart+JFreePDF生成PDF文件
这里JFreeChart和JFreePDF都是maven依赖包
JFreeChart是Java客户端应用的一个界面组件,在SwingUI上画出图表控件。
JFreePDF是能将JPanel面板截屏生成PDF的插件。
流程和原理:
缺点:
由于是将JPanel截屏生成的PDF。所以界面样式上比较难看,比不上前端界面生成的报表页面。
而且JFreePDF这个maven依赖的插件是基于JDK11开发的,如果要兼容JDK8,就要到github上将源码下载下来,自己编译生成一个兼容JDK8的依赖包。
方案三:(最终采用方案)
使用wkhtmltopdf+静态html界面生成pdf界面
wkhtmltopdf是一个将静态html网页截屏生成pdf文件的工具,Linux、Mac、Windows各个操作系统的版本都有。只需要输入目标网页的URL就能将网页完成的导出PDF文件。
1.在操作系统安装wkhtmltopdf工具
2.前端编码html+jquery+echarts的纯静态页面,由于wkhtmltopdf工具使用内置的WebKit内核版本较低,所以不兼容太新的js语言,像VueJS这些最新的框架就无法使用这个工具。目前测试的能够兼容的echarts版本是4.2.1.
3.调用wkhtmltopdf命令输入静态网页地址生成pdf文件。
之前为了调试网页写了一个Java桌面应用来调用wkhtmltopdf工具生成pdf。
github地址:
1.需要在服务器系统中先安装wkhtmltopdf工具;
2.只能单独开发一个纯静态的html页面来生成报表
优点:
界面美观,因为是直接截取html网页,所以和前端生成的图表样式一样。
开发量最小。
如果大家喜欢如何打开jsp文件 jsp怎么转换成pdf,欢迎大家收藏!
本文有网友:蛋花贡献,如若转载,请注明出处:http://weichuming.com/w/82175.html
生活网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。本站非盈利且无偿提供信息存储空间服务,不拥有所有权,如有文章有不实信息或侵犯了您的权益,请邮件weichuming@126.com反馈核实。