From 3002486dad95464e124b2aee02ff880d3003c903 Mon Sep 17 00:00:00 2001
From: 18516761980 <4761516tqsxp>
Date: 星期一, 07 六月 2021 14:40:30 +0800
Subject: [PATCH] #

---
 src/main/java/com/slcf/controller/MatCodeController.java |   88 ++++++++++++++++++-----------
 src/main/java/com/slcf/util/BarcodeUtils.java            |   78 ++++++++++++++++++++++++++
 .idea/kls-asrs.iml                                       |    4 +
 pom.xml                                                  |    1 
 4 files changed, 135 insertions(+), 36 deletions(-)

diff --git a/.idea/kls-asrs.iml b/.idea/kls-asrs.iml
index 1599a5f..b959d17 100644
--- a/.idea/kls-asrs.iml
+++ b/.idea/kls-asrs.iml
@@ -4,7 +4,9 @@
     <facet type="jpa" name="JPA">
       <configuration>
         <setting name="validation-enabled" value="true" />
-        <datasource-mapping />
+        <datasource-mapping>
+          <factory-entry name="kls-asrs" />
+        </datasource-mapping>
         <naming-strategy-map />
       </configuration>
     </facet>
diff --git a/pom.xml b/pom.xml
index bab92ad..d67c6b0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -356,7 +356,6 @@
 	</dependencies>
 
 	<build>
-		<finalName>wms</finalName>
 		<plugins>
 			<plugin>
 				<groupId>org.springframework.boot</groupId>
diff --git a/src/main/java/com/slcf/controller/MatCodeController.java b/src/main/java/com/slcf/controller/MatCodeController.java
index 3170576..8d4e71b 100644
--- a/src/main/java/com/slcf/controller/MatCodeController.java
+++ b/src/main/java/com/slcf/controller/MatCodeController.java
@@ -11,10 +11,12 @@
 import java.util.StringTokenizer;
 
 import javax.annotation.Resource;
+import javax.imageio.ImageIO;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.slcf.util.BarcodeUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -431,42 +433,60 @@
 	 * 鐢熸垚涓�缁寸爜
 	 * @param response
 	 */
+//	@RequestMapping("/showCode1.action")
+//	public void showCode1(HttpServletResponse response,HttpServletRequest request){
+//		try {
+//			response.setContentType("image/jpeg");
+//	        javax.servlet.ServletOutputStream servletoutputstream = response.getOutputStream();
+//	        response.setHeader("Pragma", "no-cache");
+//	        response.setHeader("Cache-Control", "no-cache");
+//	        response.setDateHeader("Expires", 0L);
+//	        try
+//	        {
+//	            BarCode barcode1 = getChart(request);
+//	            barcode1.setSize(barcode1.width, barcode1.height);
+//	            if(barcode1.autoSize)
+//	            {
+//	                BufferedImage bufferedimage = new BufferedImage(barcode1.getSize().width, barcode1.getSize().height, 13);
+//	                java.awt.Graphics2D graphics2d = bufferedimage.createGraphics();
+//	                barcode1.paint(graphics2d);
+//	                barcode1.invalidate();
+//	                graphics2d.dispose();
+//	            }
+//	            BufferedImage bufferedimage1 = new BufferedImage(barcode1.getSize().width, barcode1.getSize().height, 1);
+////	            BufferedImage bufferedimage1 = new BufferedImage(barcode1.width, barcode1.height, 1);
+//	            java.awt.Graphics2D graphics2d1 = bufferedimage1.createGraphics();
+//	            barcode1.paint(graphics2d1);
+//	            JPEGImageEncoder jpegimageencoder = JPEGCodec.createJPEGEncoder(servletoutputstream);
+//	            JPEGEncodeParam jpegencodeparam = jpegimageencoder.getDefaultJPEGEncodeParam(bufferedimage1);
+//	            jpegencodeparam.setQuality(1.0F, true);
+//	            jpegimageencoder.setJPEGEncodeParam(jpegencodeparam);
+//	            jpegimageencoder.encode(bufferedimage1, jpegencodeparam);
+//	        }catch(Exception exception)
+//	        {
+//	            exception.printStackTrace();
+//	        }
+//		}catch (Exception e) {
+//			System.out.println(e.getMessage());
+//		}
+//	}
+
+	/**
+	 * 鐢熸垚涓�缁寸爜
+	 * @param response
+	 */
 	@RequestMapping("/showCode1.action")
-	public void showCode1(HttpServletResponse response,HttpServletRequest request){
-		try {
-			response.setContentType("image/jpeg");
-	        javax.servlet.ServletOutputStream servletoutputstream = response.getOutputStream();
-	        response.setHeader("Pragma", "no-cache");
-	        response.setHeader("Cache-Control", "no-cache");
-	        response.setDateHeader("Expires", 0L);
-	        try
-	        {
-	            BarCode barcode1 = getChart(request);
-	            barcode1.setSize(barcode1.width, barcode1.height);
-	            if(barcode1.autoSize)
-	            {
-	                BufferedImage bufferedimage = new BufferedImage(barcode1.getSize().width, barcode1.getSize().height, 13);
-	                java.awt.Graphics2D graphics2d = bufferedimage.createGraphics();
-	                barcode1.paint(graphics2d);
-	                barcode1.invalidate();
-	                graphics2d.dispose();
-	            }
-	            BufferedImage bufferedimage1 = new BufferedImage(barcode1.getSize().width, barcode1.getSize().height, 1);
-//	            BufferedImage bufferedimage1 = new BufferedImage(barcode1.width, barcode1.height, 1);
-	            java.awt.Graphics2D graphics2d1 = bufferedimage1.createGraphics();
-	            barcode1.paint(graphics2d1);
-	            JPEGImageEncoder jpegimageencoder = JPEGCodec.createJPEGEncoder(servletoutputstream);
-	            JPEGEncodeParam jpegencodeparam = jpegimageencoder.getDefaultJPEGEncodeParam(bufferedimage1);
-	            jpegencodeparam.setQuality(1.0F, true);
-	            jpegimageencoder.setJPEGEncodeParam(jpegencodeparam);
-	            jpegimageencoder.encode(bufferedimage1, jpegencodeparam);
-	        }catch(Exception exception)
-	        {
-	            exception.printStackTrace();
-	        }
-		}catch (Exception e) {
-			System.out.println(e.getMessage());
+	public void showCode1(HttpServletResponse response,HttpServletRequest request) throws IOException {
+		String matCode = request.getParameter("matCode");
+		Integer width = Integer.parseInt(request.getParameter("width"));
+		Integer height = Integer.parseInt(request.getParameter("height"));
+		BufferedImage img = BarcodeUtils.encode(matCode, width, height);
+//		BufferedImage img = BarcodeUtils.encode(matCode);
+		if (!ImageIO.write(img, "jpg", response.getOutputStream())) {
+			throw new IOException("Could not write an image of format jpg");
 		}
+		response.getOutputStream().flush();
+		response.getOutputStream().close();
 	}
 	
 //	public BarCode barcode;
diff --git a/src/main/java/com/slcf/util/BarcodeUtils.java b/src/main/java/com/slcf/util/BarcodeUtils.java
new file mode 100644
index 0000000..2e2f51e
--- /dev/null
+++ b/src/main/java/com/slcf/util/BarcodeUtils.java
@@ -0,0 +1,78 @@
+package com.slcf.util;
+
+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 = 150;
+    private static final int DEFAULT_HEIGHT = 40;
+
+    /**
+     * 鏉″舰鐮佺紪鐮�
+     */
+    public static BufferedImage encode(String string){
+        return encode(string, null, null);
+    }
+
+    public static BufferedImage encode(String string, Integer width, Integer height){
+        if (width == null) {
+            width = DEFAULT_WIDTH;
+        }
+        if (height == null) {
+            height = DEFAULT_HEIGHT;
+        }
+        try {
+            Code128Writer writer = new Code128Writer();
+            BitMatrix bar = writer.encode(string, BarcodeFormat.CODE_128, width, height);
+            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.");
+    }
+
+}

--
Gitblit v1.9.1