From 7d03d9fe3714a10fdd51f24e3c84da31a36f4ad8 Mon Sep 17 00:00:00 2001 From: wzp <2040239371@qq.com> Date: 星期二, 15 七月 2025 14:28:14 +0800 Subject: [PATCH] fix:修复docker转化pdf文件卡顿和IO暴涨问题。 用单例控制docker转化,并监控docker状态 --- src/main/java/com/ots/project/tool/PdfUtil.java | 45 +++++++++++++++++++++++++++++++++++++++------ 1 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ots/project/tool/PdfUtil.java b/src/main/java/com/ots/project/tool/PdfUtil.java index 5a2b380..20f9b63 100644 --- a/src/main/java/com/ots/project/tool/PdfUtil.java +++ b/src/main/java/com/ots/project/tool/PdfUtil.java @@ -27,23 +27,55 @@ FontSettings.getDefaultInstance().setFontsSources(fontSourceBases); } +// public static void convertPDF(String input) { +// try { +// registerWord(); +// setFont(); +// Document pres = null; +// //鎵嬪姩鏇挎崲杈撳嚭pdf鍚嶇О +// String output = input.replaceAll(".docx", ".pdf"); +// long old = System.currentTimeMillis(); +// FileInputStream fileInput = new FileInputStream(input); +// pres = new Document(fileInput); +// FileOutputStream out = new FileOutputStream(new File(output)); +// pres.save(out, SaveFormat.PDF); +// out.close(); +// long now = System.currentTimeMillis(); +// log.info("銆愯浆鎹€�慸oc杞琾df鑰楁椂锛歿}绉�", ((now - old) / 1000.0)); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } + public static void convertPDF(String input) { + FileInputStream fileInput = null; + FileOutputStream out = null; + Document pres = null; try { registerWord(); setFont(); - Document pres = null; - //鎵嬪姩鏇挎崲杈撳嚭pdf鍚嶇О String output = input.replaceAll(".docx", ".pdf"); long old = System.currentTimeMillis(); - FileInputStream fileInput = new FileInputStream(input); + + fileInput = new FileInputStream(input); pres = new Document(fileInput); - FileOutputStream out = new FileOutputStream(new File(output)); + + out = new FileOutputStream(output); pres.save(out, SaveFormat.PDF); - out.close(); + long now = System.currentTimeMillis(); - log.info("doc杞琾df鑰楁椂锛歿}绉�", ((now - old) / 1000.0)); + log.info("銆愯浆鎹€�慸oc杞琾df鑰楁椂锛歿}绉�", ((now - old) / 1000.0)); } catch (Exception e) { e.printStackTrace(); + } finally { + // 纭繚璧勬簮閲婃斁 + if (pres != null) pres = null; // 鍏抽敭锛氶噴鏀綝ocument鍘熺敓璧勬簮 + if (fileInput != null) { + try { fileInput.close(); } catch (IOException e) { /* ignore */ } + } + if (out != null) { + try { out.close(); } catch (IOException e) { /* ignore */ } + } } } @@ -52,6 +84,7 @@ * @param profile * @param docx2pdfPath * @param fileName + * 杩欎釜鏈夋椂鍊檇ocker杞寲浼氬崱姝伙紝2025.7.15鎷熼噰鐢╬dfDockerUtil鏂版柟娉曞鐞� */ public static void dockerConvertPDF(String profile,String docx2pdfPath,String fileName){ try { -- Gitblit v1.9.1