• 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        }

      

    四.访问路径看效果如何

  • 相关阅读:
    Myeclipse 安装svn插件
    Http状态码详解
    myeclipse中的js文件报错
    eclipse 反编译插件安装
    ecshop绕过验证码暴力破解
    Myeclipse中全部文件设置成UTF-8
    WampServer phpadmin apache You don't have permission to access
    如何在Win8系统上建立WIFI热点
    记录远程桌面登录者的IP和MAC
    数据库总结
  • 原文地址:https://www.cnblogs.com/KdeS/p/11282531.html
Copyright © 2020-2023  润新知