From 95eb8a2a75cbeebcb3393d404c1952bd59b8989a Mon Sep 17 00:00:00 2001 From: wzp <2040239371@qq.com> Date: 星期五, 01 八月 2025 13:50:16 +0800 Subject: [PATCH] feat: 新增第三方接口访问 --- src/main/java/com/ots/project/tool/PdfUtil.java | 74 ++++++++++++++++++++++++++----------- 1 files changed, 52 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/ots/project/tool/PdfUtil.java b/src/main/java/com/ots/project/tool/PdfUtil.java index 1941a78..20f9b63 100644 --- a/src/main/java/com/ots/project/tool/PdfUtil.java +++ b/src/main/java/com/ots/project/tool/PdfUtil.java @@ -5,6 +5,7 @@ import java.io.*; import java.lang.reflect.Constructor; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -16,7 +17,7 @@ * 璁剧疆鐢ㄦ埛瀛椾綋浣嶇疆 */ public static void setFont() { - String[] fonts = {"C:\\Users\\澶уご\\AppData\\Local\\Microsoft\\Windows\\Fonts\\", "C:\\Users\\datou\\AppData\\Local\\Microsoft\\Windows\\Fonts\\", "/usr/share/fonts"}; + String[] fonts = {"C:\\Windows\\Fonts", "C:\\Users\\datou\\AppData\\Local\\Microsoft\\Windows\\Fonts\\", "/usr/share/fonts"}; List<FontSourceBase> fontSources = new ArrayList(Arrays.asList(FontSettings.getDefaultInstance().getFontsSources())); for (int i = 0; i < fonts.length; i++) { FolderFontSource folderFontSource = new FolderFontSource(fonts[i], true); @@ -26,45 +27,74 @@ 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 */ } + } } } /** - * 鎵цpython鑴氭湰 docx杞琾df - * @param filePath + * docker word杞琾df + * @param profile + * @param docx2pdfPath + * @param fileName + * 杩欎釜鏈夋椂鍊檇ocker杞寲浼氬崱姝伙紝2025.7.15鎷熼噰鐢╬dfDockerUtil鏂版柟娉曞鐞� */ - public static void convertPythonPDF(String pythonScript,String filePath){ + public static void dockerConvertPDF(String profile,String docx2pdfPath,String fileName){ try { - File file = new File(filePath); - if(!file.exists()){ - file.mkdirs(); - } - //鎵嬪姩鏇挎崲杈撳嚭pdf鍚嶇О - String output = filePath.replaceAll(".docx", ".pdf"); - String[] args1 = new String[] { "python3", pythonScript, filePath, output }; - // 鎵цpy鏂囦欢 - Process proc = Runtime.getRuntime().exec(args1); + String command = MessageFormat.format(docx2pdfPath,profile,fileName); + // 鎵цdocker 鍛戒护 + Process proc = Runtime.getRuntime().exec(command); BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream(), "GBK")); String line = null; - log.info("python鎵ц鍛戒护:{}", Arrays.toString(args1)); - log.info("python鎵ц杩斿洖"); + log.info("docker鎵ц鍛戒护:{}", command); + log.info("docker鎵ц杩斿洖"); while ((line = in.readLine()) != null) { log.info(line); } @@ -109,7 +139,7 @@ public static void main(String[] args) { //convertPDF("D:\\娴嬭瘎绯荤粺\\home\\鏋梍PAQ_GS_TH.docx"); - convertPDF("C:\\Users\\澶уご\\Desktop\\鏋�3_CIAQ_IA_CN.docx"); + convertPDF("C:\\Users\\mac\\Desktop\\API_Fan_IA_CN.docx"); } } -- Gitblit v1.9.1