感谢同事帮忙,这个主要是生成二维码名片,然后点击下载链接进行下载。

这是中文版

public void genChineseQrCode(){StringBuffer content = new StringBuffer();if(sysUser.getId() != null){SysUser user = sysUserBusiness.findById(sysUser.getId());content.append("BEGIN:VCARD\n" +"VERSION:3.0\n");if(user.getName() != null){String name = user.getName();content.append("FN:"+ name.substring(1,name.length())+" "+ name.charAt(0) +"\n" +"N:"+  name.charAt(0)+";"+ name.substring(1,name.length()) +"\n");}if(user.getChCardPositionName() != null){content.append("TITLE: " + user.getChCardPositionName()+"\n");}if(user.getMobile() != null){String mobile = user.getMobile();content.append("TEL;CELL:+86 " +mobile.substring(0, 3)+ " " + mobile.substring(3, 7) +" "+ mobile.substring(7, 11) +"\n");}content.append("TEL;WORK;VOICE:+86 21 3353 2222\n");content.append("TEL;WORK;FAX:+86 21 3353 2222\n");if(user.getEmail() != null){content.append("EMAIL;WORK;INTERNET:"+ user.getEmail() +"\n");}content.append("URL:http://www.baidu.com\n" +"ORG:百度有限公司\n" +"END:VCARD");this.getQrCode(content.toString(),user.getName(),"ch");}}

这是英文版

public void genEnglishQrCode(){StringBuffer content = new StringBuffer();if(sysUser.getId() != null){SysUser user = sysUserBusiness.findById(sysUser.getId());content.append("BEGIN:VCARD\n" +"VERSION:3.0\n") ;if(user.getEnName() != null){String enName = user.getEnName();content.append("FN:"+ enName.substring(0, enName.lastIndexOf("."))+ " " + enName.substring(enName.lastIndexOf(".") + 1, enName.length()) +"\n" +"N:"+ enName.substring(enName.lastIndexOf(".") + 1, enName.length()) + ";" +enName.substring(0, enName.lastIndexOf(".")) +"\n") ;}if(user.getEnCardPositionName() != null){content.append("TITLE:" + user.getEnCardPositionName()+"\n");}if(user.getMobile() != null){String mobile = user.getMobile();content.append("TEL;CELL:+86 " +mobile.substring(0, 3)+ " " + mobile.substring(3, 7) +" "+ mobile.substring(7, 11) +"\n");}content.append("TEL;WORK;VOICE:+86 21 3353 2222\n");content.append("TEL;WORK;FAX:+86 21 3353 2222\n");if(user.getEmail() != null){content.append("EMAIL;WORK;INTERNET:"+user.getEmail()+"\n");}content.append("URL:http://www.baidu.com\n" +"ORG:BAIDU ELECTRONIC TECHNOLOGY CO.,LTD.\n" +"END:VCARD");this.getQrCode(content.toString(),user.getName(),"en");}}

这是生成二维码图片代码

public void getQrCode(String content,String name,String tag){BufferedImage bufImg = null;try {Qrcode qrcodeHandler = new Qrcode();  // 设置二维码排错率,可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小  qrcodeHandler.setQrcodeErrorCorrect('M');  qrcodeHandler.setQrcodeEncodeMode('B');  // 设置设置二维码尺寸,取值范围1-40,值越大尺寸越大,可存储的信息越大  qrcodeHandler.setQrcodeVersion(13);// 获得内容的字节数组,设置编码格式  byte[] contentBytes  = content.getBytes("utf-8");// 图片尺寸  int imgSize = 67 + 12 * (13 - 1);bufImg = new BufferedImage(imgSize, imgSize, BufferedImage.TYPE_INT_RGB);  Graphics2D gs = bufImg.createGraphics();// 设置背景颜色  gs.setBackground(Color.WHITE);gs.clearRect(0, 0, imgSize, imgSize);  // 设定图像颜色> BLACK  gs.setColor(Color.BLACK);  // 设置偏移量,不设置可能导致解析出错  int pixoff = 2;  // 输出内容> 二维码  if (contentBytes.length > 0 && contentBytes.length < 800) {boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);  for (int i = 0; i < codeOut.length; i++) {  for (int j = 0; j < codeOut.length; j++) {  if (codeOut[j][i]) {  gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);}}} } else {throw new Exception("QRCode content bytes length = " + contentBytes.length + " not in [0, 800].");}  gs.dispose();  bufImg.flush();OutputStream os = getResponse().getOutputStream();ImageIO.write(bufImg, "png", os);File file = null;if(tag == "en"){file = new File(name + "英文版.png");}else{file = new File(name + "中文版.png");}ImageIO.write(bufImg, "png", file);getRequest().getSession().setAttribute("file", file);} catch (Exception e) {  e.printStackTrace();  }  }

这是下载代码,具有弹出框功能

/*** 二维码下载*/@SuppressWarnings("static-access")public void download() throws UnsupportedEncodingException{File file = (File)getRequest().getSession().getAttribute("file");try {new Download().download(getRequest(), getResponse(), file);} catch (IOException e) {e.printStackTrace();}}

这是在DownLoad()类里面

public static void download(HttpServletRequest req, HttpServletResponse resp, File file) throws IOException {resp.setContentType("application/x-msdownload");resp.setHeader("Content-Disposition", "attachment; filename="+ new String(file.getName().getBytes("GBK"),"ISO-8859-1"));int fileLength = (int) file.length();resp.setContentLength(fileLength);if (fileLength != 0) {InputStream ins;try {ins = new FileInputStream(file);byte[] buf = new byte[4096];ServletOutputStream sos;try {sos = resp.getOutputStream();int readLength;while (((readLength = ins.read(buf)) != -1)) {sos.write(buf, 0, readLength);}ins.close();sos.flush();sos.close();} catch (IOException e) {e.printStackTrace();}} catch (FileNotFoundException e) {e.printStackTrace();}}}

java 二维码名片流文件下载相关推荐

  1. Atitit java 二维码识别 图片识别

    Atitit java 二维码识别 图片识别 1.1. 解码1 1.2. 首先,我们先说一下二维码一共有40个尺寸.官方叫版本Version.1 1.3. 二维码的样例:2 1.4. 定位图案2 1. ...

  2. java二维码生成-谷歌(Google.zxing)开源二维码生成学习及实例

    java二维码生成-谷歌(Google.zxing)开源二维码生成的实例及介绍  这里我们使用比特矩阵(位矩阵)的QR码编码在缓冲图片上画出二维码 实例有以下一个传入参数 OutputStream o ...

  3. java二维码生成 使用SSM框架 搭建属于自己的APP二维码合成、解析、下载

    java二维码生成 使用SSM框架 搭建属于自己的APP二维码合成.解析.下载 自己用java搭建一个属于自己APP二维码合成网站.我的思路是这样的: 1.用户在前台表单提交APP的IOS和Andro ...

  4. java二维码的生成工具

    java二维码的生成工具 1.导入jar包,我是用的是一个谷歌提供的 <dependency><groupId>com.google.zxing</groupId> ...

  5. 【笔记11】uniapp点击复制;mysql数据库存储emoji表情;Java 二维码生成;uniapp引入自定义图标

    目录 前言 一.uniapp 实现点击复制某段文本 二.MySQL 数据库存储 emoji 表情 三.Layui 的富文本编辑器 四.谷歌 Java 二维码生成 (1) 引入 MAVEN 依赖 五.微 ...

  6. java二维码编码生成并转换成流传入前端页面

    java二维码编码生成并转换成流传入前端页面 这里主要用了com.google.zxing的依赖,这个依赖主要可以完成图片叠加.二维码生成和图片加文字等功能. ①添加依赖 <dependency ...

  7. java 二维码生成和解析

    2019独角兽企业重金招聘Python工程师标准>>> <!-- 二维码 --><dependency><groupId>com.google.z ...

  8. java二维码生成技术

    自从微信扫描出世,二维码扫描逐渐已经成为一种主流的信息传递和交换方式.下面就介绍一下我学习到的这种二维码生成方式.预计再过不久身份证户口本等都会使用二维码识别了,今天就做一个实验案例: 二维码主要实现 ...

  9. java二维码生成_如何使用 Java 生成二维码?

    精品专栏 <GitHub:中文详细注释的开源项目> 1. 下载jar包(QRCode.jar)2. maven项目手动引入jar包3. 编写实体类实现二维码的生成4. controller ...

最新文章

  1. 计算机视觉顶尖期刊和会议的段子
  2. php手册常用的函数
  3. 基于clang插件的一种iOS包大小瘦身方案
  4. 获取当天是当年/当月的第几周
  5. 用python简单处理图片(4):图像中的像素访问
  6. Fbric、Ansible、Docker、Chaos Monkey:DevOps工具的年中回顾
  7. java实现未读消息提醒_Android自定义View之未读消息提示
  8. matlab impyramid图像金字塔
  9. pandas插入新列
  10. 用JQuery操作元素的style属性
  11. 吴恩达深度学习2.3笔记_Improving Deep Neural Networks_超参数调试 和 Batch Norm
  12. 将一个大文件分割为若干个小文件的方法
  13. calcite learn
  14. 偶像的力量-松哥经典语录
  15. 软碟通系统U盘制作教程
  16. 【英语词组】恋恋不忘Day4-5
  17. SPI控制MS5614T
  18. 用laravel写一个API
  19. 西邮Linux小组免试题揭秘
  20. 17前端学习之JQuery基础(一):jQ介绍,jQ基本使用,jQ选择器,jQ样式操作,jQ动画效果

热门文章

  1. 设置滚动条默认样式 谷歌浏览器
  2. android中PAG的简单使用
  3. 【计算机毕业设计】医院设备管理系统
  4. c语言 4x4矩阵乘法,c - 高效的4x4矩阵乘法(C vs汇编) - 堆栈内存溢出
  5. 基于dlib进行人脸检测
  6. 数组的四种排序方法介绍
  7. 使用Node.js+React+EUI快速搭建网页应用
  8. 小明有N(4≤N≤60)个玻璃球,他想将N个玻璃球拆分成若干份(份数≥2,且每份中的数量互不相等),从而使拆分后的每份玻璃球数量的乘积最大。请你编写程序帮助小明计算出最大乘积是多少...
  9. Java与多串口通讯(二)
  10. [SHOI 2017] 组合数问题