最近项目需要生成带logo的二维码供前台下载,在网上找了几篇文章,整合了一下。
首先需要的是QRCode.jar,我项目是直接maven依赖
<!-- Qrcode二维码 -->
<dependency>
<groupId>QRCode</groupId>
<artifactId>QRCode</artifactId>
<version>3.0</version>
</dependency>
QRCode.jar地址:http://download.csdn.net/download/qq_35042227/10137664
获取信息通过ajax发送给后台进行接收处理
function printEwm(){
var LCNAME = $("input[name=LCNAME]").val();
var BJH = $("input[name=BJH]").val();
var SX = $("input[name=SX]").val();
var SQR = $("input[name=SQR]").val();
var LXDH = $("input[name=LXDH]").val();
var SFZHM = $("input[name=SFZHM]").val();
var SQSJ = $("input[name=SQSJ]").val();
$.ajax({
type : 'POST',
async : true,
url : '/bpm/bmfw/printEwm',
data : {
"lcname":LCNAME,
"bjh":BJH,
"sx":SX,
"sqr":SQR,
"lxdh":LXDH,
"sfzhm":SFZHM,
"sqsj":SQSJ,
},
success : function(addr){
location.href = addr;
},
error : function(){
console.log("失败");
}
});
}
处理这些信息并通过genQrcode()方法传入输出路径和信息生成二维码,返回一个路径供前台下载(项目需要。。)
@RequestMapping(value="bpm/bmfw/printEwm",method=RequestMethod.POST)
public @ResponseBody String printEwm(@RequestParam("lcname") String lcname,@RequestParam("bjh") String bjh,@RequestParam("sx") String sx,
@RequestParam("sqr") String sqr,@RequestParam("lxdh") String lxdh,@RequestParam("sfzhm") String sfzhm,@RequestParam("sqsj") String sqsj,
HttpServletResponse response,HttpServletRequest request) throws UnsupportedEncodingException{
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
String time = sdf.format(date);
/*System.out.println(time);*/
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMddHHmmssSS");
String picTime = sdf2.format(date);