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        }

  

四.访问路径看效果如何

原文地址:https://www.cnblogs.com/KdeS/p/11282531.html