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