From 989abb480ea94940c1ebf80d6e98ee49fc52f030 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 06 六月 2020 14:39:35 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/MatCodeController.java |   17 ++++++++
 src/main/webapp/views/matCode/matCode.html                  |    2 
 src/main/java/com/zy/common/utils/QrCode.java               |    1 
 pom.xml                                                     |    5 ++
 src/main/java/com/zy/common/utils/BarcodeUtils.java         |   72 ++++++++++++++++++++++++++++++++++++
 5 files changed, 95 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index 2c2c643..06eb849 100644
--- a/pom.xml
+++ b/pom.xml
@@ -82,6 +82,11 @@
             <version>3.3.0</version>
         </dependency>
         <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>javase</artifactId>
+            <version>3.3.0</version>
+        </dependency>
+        <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>easyexcel</artifactId>
             <version>2.0.5</version>
diff --git a/src/main/java/com/zy/asrs/controller/MatCodeController.java b/src/main/java/com/zy/asrs/controller/MatCodeController.java
index 00bb494..a75d060 100644
--- a/src/main/java/com/zy/asrs/controller/MatCodeController.java
+++ b/src/main/java/com/zy/asrs/controller/MatCodeController.java
@@ -14,6 +14,7 @@
 import com.core.common.R;
 import com.zy.asrs.entity.MatCode;
 import com.zy.asrs.service.MatCodeService;
+import com.zy.common.utils.BarcodeUtils;
 import com.zy.common.utils.excel.matcode.MatCodeExcel;
 import com.zy.common.utils.excel.matcode.MatCodeExcelListener;
 import com.zy.common.web.BaseController;
@@ -21,7 +22,9 @@
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.net.URLEncoder;
 import java.util.*;
@@ -139,6 +142,20 @@
         return R.ok();
     }
 
+    // todo resource
+    // 鐗╂枡鎵撳嵃
+    @RequestMapping(value = "/macCode/print/auth")
+//    @ManagerAuth(memo = "鐗╂枡缂栫爜鎵撳嵃")
+    public R matCodePrint(HttpServletResponse response) throws IOException {
+        BufferedImage img = BarcodeUtils.encode("123456789");
+        if (!ImageIO.write(img, "jpg", response.getOutputStream())) {
+            throw new IOException("Could not write an image of format jpg");
+        }
+        response.getOutputStream().flush();
+        response.getOutputStream().close();
+        return R.ok();
+    }
+
     @RequestMapping(value = "/matCodeQuery/auth")
     @ManagerAuth
     public R query(String condition) {
diff --git a/src/main/java/com/zy/common/utils/BarcodeUtils.java b/src/main/java/com/zy/common/utils/BarcodeUtils.java
new file mode 100644
index 0000000..707703b
--- /dev/null
+++ b/src/main/java/com/zy/common/utils/BarcodeUtils.java
@@ -0,0 +1,72 @@
+package com.zy.common.utils;
+
+import com.google.zxing.*;
+import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
+import com.google.zxing.client.j2se.MatrixToImageWriter;
+import com.google.zxing.common.BitMatrix;
+import com.google.zxing.common.HybridBinarizer;
+import com.google.zxing.oned.Code128Writer;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.util.HashMap;
+
+/**
+ * 鏉″舰鐮佸伐鍏�
+ * Created by vincent on 2020/6/6
+ */
+public class BarcodeUtils {
+
+    private static final int DEFAULT_WIDTH = 264;
+    private static final int DEFAULT_HEIGHT = 48;
+
+    /**
+     * 鏉″舰鐮佺紪鐮�
+     */
+    public static BufferedImage encode(String string){
+        return encode(string, null, null);
+    }
+
+    public static BufferedImage encode(String string, Integer width, Integer height){
+        try {
+            Code128Writer writer = new Code128Writer();
+            BitMatrix bar = writer.encode(string, BarcodeFormat.CODE_128, width==null?DEFAULT_WIDTH:width, height==null?DEFAULT_HEIGHT:height, new HashMap<>());
+            return MatrixToImageWriter.toBufferedImage(bar);
+        }
+        catch (WriterException e){ throw new RuntimeException(e); }
+    }
+
+    /**
+     * 鏉″舰鐮佽В鐮�
+     */
+    public static String decode(String imgPath) {
+        BufferedImage image = null;
+        Result result = null;
+        try {
+            image = ImageIO.read(new File(imgPath));
+            if (image == null) {
+                throw new RuntimeException("the decode image may be not exit.");
+            }
+            LuminanceSource source = new BufferedImageLuminanceSource(image);
+            BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
+            result = new MultiFormatReader().decode(bitmap, null);
+            return result.getText();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static void main(String[] args) {
+        String imgPath = "F:/zxing_EAN-13.png";
+        String contents = "6926557300360";
+        int width = 105, height = 50;
+        encode(contents, width, height);
+        System.out.println("finished zxing EAN-13 encode.");
+        String decodeContent = decode(imgPath);
+        System.out.println("瑙g爜鍐呭濡備笅锛�" + decodeContent);
+        System.out.println("finished zxing EAN-13 decode.");
+    }
+
+}
diff --git a/src/main/java/com/zy/common/utils/QrCode.java b/src/main/java/com/zy/common/utils/QrCode.java
index 174d713..ccc1196 100644
--- a/src/main/java/com/zy/common/utils/QrCode.java
+++ b/src/main/java/com/zy/common/utils/QrCode.java
@@ -22,7 +22,6 @@
     // 浜岀淮鐮佸昂瀵�
     private static final int QRCODE_SIZE = 60;
 
-
     public static BufferedImage createImg(String content) throws WriterException {
         ConcurrentHashMap hints = new ConcurrentHashMap();
         hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
diff --git a/src/main/webapp/views/matCode/matCode.html b/src/main/webapp/views/matCode/matCode.html
index 5a07624..5f4693b 100644
--- a/src/main/webapp/views/matCode/matCode.html
+++ b/src/main/webapp/views/matCode/matCode.html
@@ -41,7 +41,7 @@
 
 <script type="text/html" id="operate">
     <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>
-    <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+<!--    <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>-->
 </script>
 
 <script type="text/javascript" src="/static/js/jquery/jquery-3.3.1.min.js"></script>

--
Gitblit v1.9.1