From 5c4c7e74ff87ed72a2631c352afd512c9384a8be Mon Sep 17 00:00:00 2001 From: jkcdev Date: Tue, 27 May 2025 10:53:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=8C=E5=96=84=E4=BA=8C?= =?UTF-8?q?=E7=BB=B4=E7=A0=81=E7=94=9F=E6=88=90=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E6=96=87=E5=AD=97=EF=BC=9B=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81=E5=86=85=E5=AE=B9=E4=B8=8E=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E7=9A=84=E6=96=87=E5=AD=97=E4=B8=8D=E4=B8=80=E6=A0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EbikeOperateSystemInfoController.java | 4 ++-- .../java/com/cdzy/ebikeoperate/utils/QRGenUtil.java | 10 +++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeOperateSystemInfoController.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeOperateSystemInfoController.java index dee73cc0..0fea2ecf 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeOperateSystemInfoController.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeOperateSystemInfoController.java @@ -167,11 +167,11 @@ public class EbikeOperateSystemInfoController { * @return */ @PostMapping("ebikeQrCodeGenerate") - public JsonResult ebikeQrGenerate(@RequestParam(name = "content") String content) { + public JsonResult ebikeQrGenerate(@RequestParam(name = "content") String content, @RequestParam(name = "text") String text) { if (content == null || content.isEmpty()) { return JsonResult.failed("二维码内容不能为空"); } - return JsonResult.success(QRGenUtil.generateQRCodeBase64(content)); + return JsonResult.success(QRGenUtil.generateQRCodeBase64(content, text)); } /** diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/utils/QRGenUtil.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/utils/QRGenUtil.java index 59fb07d5..de8a40b0 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/utils/QRGenUtil.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/utils/QRGenUtil.java @@ -25,9 +25,10 @@ public class QRGenUtil { *

增加内容文字 * * @param content 二维码内容 + * @param text 文字内容 * @return Base64编码的二维码 */ - public static String generateQRCodeBase64(String content) { + public static String generateQRCodeBase64(String content, String text) { // 1. 生成基础二维码 try (ByteArrayOutputStream qrStream = QRCode.from(content) .withSize(300, 300) @@ -35,6 +36,9 @@ public class QRGenUtil { .withErrorCorrection(ErrorCorrectionLevel.H) // 纠错等级(H为最高) .to(ImageType.PNG) // 输出格式 .stream()) { + if(text == null || text.isEmpty()){ + return Base64.getEncoder().encodeToString(qrStream.toByteArray()); + } // 2. 将二维码转换为 BufferedImage ByteArrayInputStream inputStream = new ByteArrayInputStream(qrStream.toByteArray()); @@ -53,12 +57,12 @@ public class QRGenUtil { g2d.setColor(Color.BLACK); // 计算文字位置(底部居中) - int textWidth = g2d.getFontMetrics().stringWidth(content); + int textWidth = g2d.getFontMetrics().stringWidth(text); int x = (qrImage.getWidth() - textWidth) / 2; int y = qrImage.getHeight() - 2; // 底部留白 // 添加文字说明 - g2d.drawString(content, x, y); + g2d.drawString(text, x, y); g2d.dispose(); // 使用 Java 8+ 的 Base64 编码(避免自动换行问题)