wangxichen 5 일 전
부모
커밋
ea277c9d80
3개의 변경된 파일20개의 추가작업 그리고 0개의 파일을 삭제
  1. BIN
      lib/mes-print.jar
  2. 16 0
      src/com/mes/print/PrintHelper.java
  3. 4 0
      src/com/mes/ui/MesClient.java

BIN
lib/mes-print.jar


+ 16 - 0
src/com/mes/print/PrintHelper.java

@@ -17,6 +17,22 @@ import com.mes.print.model.LabelData;
 public class PrintHelper {
 
     /**
+     * 预热打印模块(异步调用,不阻塞主流程)
+     * 首次打印约 3-5 秒的 PDF 模板加载 + 底图渲染放到启动阶段完成
+     */
+    public static void warmUpAsync() {
+        Thread t = new Thread(() -> {
+            try {
+                Printer.warmUp();
+            } catch (Throwable e) {
+                System.err.println("[打印] 预热异常: " + e.getMessage());
+            }
+        }, "print-warmup");
+        t.setDaemon(true);
+        t.start();
+    }
+
+    /**
      * 打印流转卡(HP 激光打印机)
      *
      * @param sn 产品序列号(客户码)

+ 4 - 0
src/com/mes/ui/MesClient.java

@@ -200,6 +200,10 @@ public class MesClient extends JFrame {
                     // 启动镭雕流程管理器(含本地HTTP服务,接收镭雕软件完成上报)
                     initLaserFlow();
 
+                    // 异步预热打印模块:PDF 模板加载 + 300dpi 底图渲染 + 中文字体探测
+                    // 避免首次打印卡顿 ~55s;预热失败不影响主流程
+                    com.mes.print.PrintHelper.warmUpAsync();
+
                 }catch (Exception e){
                     throw new RuntimeException("客户端初始化失败", e);
                 }