From 6749f6eca221ca58de74837299c71a4da1e84b9d Mon Sep 17 00:00:00 2001 From: "usama.jameel" Date: Fri, 10 Jan 2025 18:12:57 +0500 Subject: [PATCH] fixed barcode printer issue and add notification cut button --- .../controller/CuttingController.java | 6 ++- .../controller/StitchingController.java | 3 +- .../model/ctp/BarcodeStickerSize.java | 2 +- .../service/BarcodeService.java | 37 +++++++------------ src/main/resources/templates/_notices.html | 21 +++++++++-- 5 files changed, 39 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/utopiaindustries/controller/CuttingController.java b/src/main/java/com/utopiaindustries/controller/CuttingController.java index cc07476..36111d6 100644 --- a/src/main/java/com/utopiaindustries/controller/CuttingController.java +++ b/src/main/java/com/utopiaindustries/controller/CuttingController.java @@ -158,7 +158,8 @@ public class CuttingController { } try { barcodeService.generateBarcodes( Arrays.asList( ids ), artifactType ); - return ResponseEntity.ok(); + redirectAttributes.addFlashAttribute( "success", "Barcode generated successfully" ); + return "redirect:/cutting/bundles"; }catch (Exception e){ redirectAttributes.addFlashAttribute( "error", e ); return "redirect:/cutting/bundles"; @@ -174,7 +175,8 @@ public class CuttingController { } try { barcodeService.generateBarcodes( Arrays.asList( ids ), artifactType ); - return ResponseEntity.ok(); + redirectAttributes.addFlashAttribute( "success", "Master barcode generated successfully" ); + return "redirect:/cutting/master-bundles"; }catch (Exception e){ redirectAttributes.addFlashAttribute( "error", e ); return "redirect:/cutting/master-bundles"; diff --git a/src/main/java/com/utopiaindustries/controller/StitchingController.java b/src/main/java/com/utopiaindustries/controller/StitchingController.java index 0de9873..58c83f7 100644 --- a/src/main/java/com/utopiaindustries/controller/StitchingController.java +++ b/src/main/java/com/utopiaindustries/controller/StitchingController.java @@ -138,7 +138,8 @@ public class StitchingController { } try { barcodeService.generateBarcodes( Arrays.asList( ids ), artifactType ); - return ResponseEntity.ok(); + redirectAttributes.addFlashAttribute( "success", "Barcode generated successfully" ); + return "redirect:/stitching/stitching-offline-items"; }catch (Exception e){ redirectAttributes.addFlashAttribute( "error", e ); return "redirect:/stitching/stitching-offline-items"; diff --git a/src/main/java/com/utopiaindustries/model/ctp/BarcodeStickerSize.java b/src/main/java/com/utopiaindustries/model/ctp/BarcodeStickerSize.java index c05db90..6cb8c17 100644 --- a/src/main/java/com/utopiaindustries/model/ctp/BarcodeStickerSize.java +++ b/src/main/java/com/utopiaindustries/model/ctp/BarcodeStickerSize.java @@ -5,7 +5,7 @@ public enum BarcodeStickerSize { SIZE_1_5_X_3( 3 * 72, 1.5f * 72, 10, 10, 6, 6, 50, 50, 125, 125, 14, 9, 7), SIZE_2_X_3( 3 * 72, 2 * 72, 10, 10, 6, 6, 50, 50, 125, 125, 14, 9, 7), SIZE_4_X_4( 4 * 72, 4 * 72, 8, 8, 8, 8, 200, 100, 250, 250, 14, 9, 7), - SIZE_1_75_X_3_5( 3.5f * 72, 1.75f * 72, 10, 10, 6, 6, 50, 50, 125, 125, 14, 9, 7); + SIZE_1_75_X_3_5( 7f * 72, 4f * 72, 10, 10, 6, 6, 50, 50, 125, 125, 14, 9, 7); private final float width; diff --git a/src/main/java/com/utopiaindustries/service/BarcodeService.java b/src/main/java/com/utopiaindustries/service/BarcodeService.java index dbb203b..ccb7202 100644 --- a/src/main/java/com/utopiaindustries/service/BarcodeService.java +++ b/src/main/java/com/utopiaindustries/service/BarcodeService.java @@ -1,12 +1,6 @@ package com.utopiaindustries.service; import com.google.zxing.BarcodeFormat; -import com.itextpdf.html2pdf.ConverterProperties; -import com.itextpdf.html2pdf.resolver.font.DefaultFontProvider; -import com.itextpdf.text.*; -import com.itextpdf.text.Image; -import com.itextpdf.text.Rectangle; -import com.itextpdf.text.pdf.*; import com.utopiaindustries.dao.ctp.BundleDAO; import com.utopiaindustries.dao.ctp.FinishedItemDAO; import com.utopiaindustries.dao.ctp.MasterBundleDAO; @@ -19,12 +13,6 @@ import com.zebra.sdk.comm.TcpConnection; import com.zebra.sdk.graphics.internal.ZebraImage; import com.zebra.sdk.printer.ZebraPrinter; import com.zebra.sdk.printer.ZebraPrinterFactory; -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.core.io.InputStreamResource; -import org.springframework.core.io.ResourceLoader; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import javax.imageio.ImageIO; @@ -32,7 +20,6 @@ import java.awt.*; import java.awt.Font; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; import java.util.ArrayList; import java.util.List; @@ -78,8 +65,9 @@ public class BarcodeService { for (InventoryArtifact artifact : artifacts) { // Create a blank BufferedImage (an image with the size of the sticker) - BufferedImage stickerImage = new BufferedImage((int) stickerSize.getWidth(), (int) stickerSize.getHeight(), BufferedImage.TYPE_INT_ARGB); + BufferedImage stickerImage = new BufferedImage((int) stickerSize.getWidth()*2, (int) stickerSize.getHeight()*2, BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = stickerImage.createGraphics(); + g2d.scale(2,2); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // Set background color (white for the sticker) @@ -87,7 +75,7 @@ public class BarcodeService { g2d.fillRect(0, 0, (int) stickerSize.getWidth(), (int) stickerSize.getHeight()); // Set font for SKU and barcode - Font font = new Font("Helvetica", Font.BOLD, stickerSize.getTextSizeSmall()); + Font font = new Font("Helvetica", Font.BOLD, stickerSize.getTextSize()+10); g2d.setFont(font); // Add SKU to the image @@ -96,15 +84,15 @@ public class BarcodeService { int textWidth = fontMetrics.stringWidth(sku); int x = (int) ((stickerSize.getWidth() - textWidth) / 2); g2d.setColor(Color.BLACK); - g2d.drawString(sku, x, stickerSize.getMarginTop() + fontMetrics.getAscent()); + g2d.drawString(sku, x, stickerSize.getMarginTop() + fontMetrics.getAscent()+20); // Create the barcode image - byte[] imgBytes = BarcodeUtils.getBarcodeImageByteArray(artifact.getBarcode(), BarcodeFormat.CODE_128, stickerSize.getImageWidthBarcode(), stickerSize.getImageHeightBarcode()); + byte[] imgBytes = BarcodeUtils.getBarcodeImageByteArray(artifact.getBarcode(), BarcodeFormat.CODE_128, stickerSize.getImageWidthBarcode()+500, stickerSize.getImageHeightBarcode()+30); BufferedImage barcodeImage = ImageIO.read(new ByteArrayInputStream(imgBytes)); // Draw the barcode image on the sticker int barcodeX =(int) (stickerSize.getWidth() - barcodeImage.getWidth()) / 2; - int barcodeY = stickerSize.getMarginTop() + fontMetrics.getAscent() + 10; // Add some margin + int barcodeY = stickerSize.getMarginTop() + fontMetrics.getAscent() + 30; // Add some margin g2d.drawImage(barcodeImage, barcodeX, barcodeY, null); // Add the barcode value below the barcode image @@ -115,24 +103,27 @@ public class BarcodeService { if (artifactType.equalsIgnoreCase(Bundle.class.getSimpleName())) { String typeText = String.format("%s : %d", artifact.getType(), artifact.getId()); g2d.drawString(typeText, (stickerSize.getWidth() - fontMetrics.stringWidth(typeText)) / 2, - barcodeY + barcodeImage.getHeight() + fontMetrics.getAscent() + 20); + barcodeY + barcodeImage.getHeight() + fontMetrics.getAscent() + 45); + + g2d.setFont(new Font("Helvetica", Font.BOLD, stickerSize.getTextSize()+20)); + g2d.drawString(String.valueOf(artifactType.toCharArray()[0]), (stickerSize.getWidth() - fontMetrics.stringWidth(String.valueOf(artifactType.toCharArray()[0]))) / 2, + barcodeY + barcodeImage.getHeight() + fontMetrics.getAscent() + 77); } else { // Add first character of artifact type String type = String.valueOf(artifactType.charAt(0)); - g2d.setFont(new Font("Helvetica", Font.BOLD, stickerSize.getTextSize())); + g2d.setFont(new Font("Helvetica", Font.BOLD, stickerSize.getTextSize()+10)); g2d.drawString(type, (stickerSize.getWidth() - fontMetrics.stringWidth(type)) / 2, - barcodeY + barcodeImage.getHeight() + fontMetrics.getAscent() + 40); + barcodeY + barcodeImage.getHeight() + fontMetrics.getAscent() + 45); } // Finalize drawing g2d.dispose(); - printLabel(stickerImage); } } public void printLabel( BufferedImage bufferedImage ) throws Exception { - String ipAddr = "192.168.90.18"; + String ipAddr = "192.168.90.160"; int port = 9100; Connection connection = new TcpConnection( ipAddr, port ); connection.open(); diff --git a/src/main/resources/templates/_notices.html b/src/main/resources/templates/_notices.html index 911e70f..af34bbd 100644 --- a/src/main/resources/templates/_notices.html +++ b/src/main/resources/templates/_notices.html @@ -6,14 +6,29 @@
-
+
+
+ + × +
+
-
-
+
+
+ + × +
+
+
+
+ + × +
+
\ No newline at end of file