本文主要内容
- 二维码生成
- 二维码标签预览及打印
二维码生成
笔者此次的二维码是通过调用第三方接口生成的,具体流程如下:
- 根据规范要求调用第三方接口,返回二维码下载地址及二维码图片的属性值(图片大小等)
- 根据返回的值获取二维码下载地址,根据地址下载二维码图片,保存至本地磁盘及记录数据信息
- 扫描二维码跳转相应地址,显示资产的基本信息
- 最终生成的二维码如下图所示:
预览并批量打印二维码标签
先给大家看最终预览效果:
事先配置好标签打印机(标签亚银纸、树脂碳带等),点击右上方打印按钮,即可打印。打印标签效果如图:
前端
目前前端用的是 easyui,直接上代码:
{
id: 'print',
text: '打印',
iconCls: 'icon-print',
handler: function () {
var rows = $('#dg').datagrid('getSelections');
if (rows.length > 0) {
var ids = "";
for (var i = 0; i < rows.length; i++) {
ids += rows[i].ID + ","
}
var id = ids.substring(0, ids.length - 1);
window.open("${hostPrefix}swjEqu/qrCodeManageAction!printQr.action?id=" + id);
} else {
alert("请选择一条记录!");
}
}
}
后端
主要用 itextPdf 处理
package com.whread.common.web.action;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.log4j.Logger;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.ParameterAware;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;
import org.apache.struts2.util.ServletContextAware;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@SuppressWarnings("serial")
public class BaseAction extends ActionSupport implements ServletRequestAware,
ServletContextAware, ServletResponseAware, SessionAware,
ApplicationAware, ParameterAware {
protected HttpServletRequest request;
protected HttpServletResponse response;
protected HttpSession httpSession;
protected Map session;
protected Map parameters;
protected Map application;
private ServletContext servletContext;
protected String msg;
protected Logger log = Logger.getLogger(this.getClass());
public BaseAction() {
super();
}
public HttpServletRequest getServletRequest() {
return this.request;
}
public void setServletRequest(HttpServletRequest req) {
this.request = req;
if (request != null) {
this.httpSession = request.getSession();
}
}
public HttpSession getHttpSession() {
return this.httpSession;
}
public HttpServletResponse getServletResponse() {
return this.response;
}
public void setServletResponse(HttpServletResponse rep) {
this.response = rep;
}
public Map getSession() {
return this.session;
}
public void setSession(Map session) {
this.session = session;
}
public ServletContext getServletContext() {
return this.servletContext;
}
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
public Map getApplication()