springboot实现控制层返回二维码,扫描后打开PDF文件
公司要求是弹出一个二维码,扫描二维码后进入对应的PDF文件,
一. google ZXing 简介
Java 操作二维码的开源项目很多,如 SwetakeQRCode、BarCode4j、Zxing 等等
本文将介绍简单易用的 google 公司的 zxing,zxing 使用方便,可以操作条形码或者二维码等,不仅有 java 版本,还有 Android 版。
二.Maven引入
1 <!-- 二维码 https://mvnrepository.com/artifact/com.google.zxing/core --> 2 <dependency> 3 <groupId>com.google.zxing</groupId> 4 <artifactId>core</artifactId> 5 <version>3.3.0</version> 6 </dependency> 7 <!-- https://mvnrepository.com/artifact/com.google.zxing/javase --> 8 <dependency> 9 <groupId>com.google.zxing</groupId> 10 <artifactId>javase</artifactId> 11 <version>3.3.0</version> 12 </dependency>
三.代码实列
1 /** 2 * 生成二维码方法 手机扫描后可查看网格管理办法内容PDF 3 * 4 * @param resp response对象 5 * @throws Exception 抛出异常 6 */ 7 @RequestMapping("/mmqrcode") 8 public void getQrcode(HttpServletResponse resp) throws Exception { 9 ServletOutputStream stream = null; 10 try { 11 stream = resp.getOutputStream(); 12 Map<EncodeHintType, Object> hints = new HashMap<>(); 13 //编码 14 hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); 15 //边框距 16 hints.put(EncodeHintType.MARGIN, 0); 17 String str="http://139.159.243.179:22816/static/files/%AC%E5%86%E6%9E%90%E5%91%A8%E6%8A%A5.pdf"; 18 QRCodeWriter writer = new QRCodeWriter(); 19 BitMatrix bm = writer.encode(str, BarcodeFormat.QR_CODE, 300, 300, hints); 20 MatrixToImageWriter.writeToStream(bm, "png", stream); 21 } catch (WriterException e) { 22 e.getStackTrace(); 23 } finally { 24 if (stream != null) { 25 stream.flush(); 26 stream.close(); 27 } 28 } 29 }
四.访问路径看效果如何
作者:皓月无边*半步青莲
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。