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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值