最近龙哥的园子开张了,不少同学加好友要求入园,为满足同学们的需求,特开此篇,用锐浪JAVA WEB报表实现批量+套打 生成打印入园通知书。
锐浪JAVA WEB报表官网
我们先看一下今天要实现的效果-龙哥的”入园通知书“(注:自已瞎编的通知书,仅用来交流技术作模型使用,如真有类同,纯属巧合),技术要点:批量 +套打。
这里只截图了批量打印中的2个,能批量打印几个,取决于数据有几条。
下面详细讲解下实现过程,核心过程:提取套打底图--》整理JSON数据--》制作模板-》上线使用。
1、提取套打底图
来个底图特写,尺寸大小是B5(JIS),一般通过扫描纸质后拿到彩色电子图
2、整理JSON数据
{
"detaildata":[
{
"xm":"张小明",
"nanji":"一",
"banji":"1",
"bdrq":"2020-07-09"
},
{
"xm":"王朋",
"nanji":"一",
"banji":"2",
"bdrq":"2020-07-09"
},
{
"xm":"赵红红",
"nanji":"一",
"banji":"5",
"bdrq":"2020-07-09"
}
]
}
3、制作模板
用报表设计器,新建报表,页面设置为B5(JIS),横向
空白模板页面设置
在空白模板上,点右键,新增报表节,插入明细网络,然后在设置数据源中引入我们整理好的JSON。
点击根据数据设置自动生成字段,和 根据字段自动生成列
然后把多余的列删除,只保留第一列,把标题行高度设为0,内容行中,把第一列格式化,按照我们要实现的效果,不变的地方,插入静态文本框,动态变化的地方插入数据字段,并绑定JSON中的相对应字段。
最后插入条码控件,设置类型为二维码,设置二维码链接
基本成功,点击预览查看效果,并按照纸质证件要求进行微调。
4、上线使用
模板制作完了,就把模板GRF文件放入项目,并调用API进行JSON数据获取。直接上代码
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>受理通知书打印</title>
<script src="/gridreport/CreateControl.js" type="text/javascript"></script>
<script src="/gridreport/GRInstall.js" type="text/javascript"></script>
</head>
<body style="width: 100%;height:100%">
<div style="width: 100%;height: 100%;">
<script type="text/javascript">
var grf_path='sltzs.grf';
var data_url ='www.xxx.com/api/getSltzsData';
data_url = encodeURI(encodeURI(data_url));
Install_InsertReport();
var Installed =Install_Detect();
if(Installed){
CreatePrintViewerEx("100%", "100%", grf_path, data_url, true, "");
}
</script>
</div>
</body>
</html>
好了,完工。让我们早点回家陪X朋友吧!ENJOY!