From e3f8089c830d5c6e7477090cf447bed65e80be9f Mon Sep 17 00:00:00 2001 From: zhijie <1003392067@qq.com> Date: 星期一, 19 九月 2022 00:38:39 +0800 Subject: [PATCH] 优化导出报告 --- src/main/java/com/ots/project/tool/ShellTool.java | 64 +++++++++++++++++--------------- 1 files changed, 34 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/ots/project/tool/ShellTool.java b/src/main/java/com/ots/project/tool/ShellTool.java index 715583b..2b4c2c8 100644 --- a/src/main/java/com/ots/project/tool/ShellTool.java +++ b/src/main/java/com/ots/project/tool/ShellTool.java @@ -1,10 +1,35 @@ package com.ots.project.tool; +import com.ots.common.utils.spring.SpringUtils; +import com.ots.common.utils.text.CharsetKit; import lombok.extern.slf4j.Slf4j; +import org.jodconverter.core.DocumentConverter; +import org.jodconverter.core.office.OfficeException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; import java.io.*; +import java.util.concurrent.ScheduledExecutorService; @Slf4j +@Component public class ShellTool { - + + @Autowired + private DocumentConverter documentConverter; + private static ShellTool shellTool; + + @PostConstruct + public void init(){ + shellTool = this; + shellTool.documentConverter = documentConverter; + } + + public static ShellTool builder(){ + return shellTool; + } + + public static String execLibreofficeCommand(String type, String sourcePath, String targetPath) { String os = System.getProperty("os.name"); StringBuilder builder = new StringBuilder(); @@ -15,8 +40,7 @@ } else { builder.append("libreoffice6.4 --headless --convert-to "); } - - builder.append(type).append(" "); + builder.append(type).append(":impress_pdf_Export "); builder.append("--outdir " + targetPath).append(" "); builder.append(sourcePath).append(" "); @@ -26,35 +50,15 @@ file.delete(); } } catch (Exception e) { - } - return run_cmd(builder.toString()); - } - - public static String run_cmd(String strcmd) { - // - Runtime rt = Runtime.getRuntime(); //Runtime.getRuntime()杩斿洖褰撳墠搴旂敤绋嬪簭鐨凴untime瀵硅薄 - Process ps = null; //Process鍙互鎺у埗璇ュ瓙杩涚▼鐨勬墽琛屾垨鑾峰彇璇ュ瓙杩涚▼鐨勪俊鎭�� - try { - ps = rt.exec(strcmd); //璇ュ璞$殑exec()鏂规硶鎸囩ずJava铏氭嫙鏈哄垱寤轰竴涓瓙杩涚▼鎵ц鎸囧畾鐨勫彲鎵ц绋嬪簭锛屽苟杩斿洖涓庤瀛愯繘绋嬪搴旂殑Process瀵硅薄瀹炰緥銆� - ps.waitFor(); //绛夊緟瀛愯繘绋嬪畬鎴愬啀寰�涓嬫墽琛屻�� - } catch (IOException e1) { - e1.printStackTrace(); - } catch (InterruptedException e) { - // TODO Auto-generated catch block e.printStackTrace(); } + log.info("鎵ц鍛戒护:{}",builder.toString()); + return exec(builder.toString()); + } - int i = ps.exitValue(); //鎺ユ敹鎵ц瀹屾瘯鐨勮繑鍥炲�� - if (i == 0) { - System.out.println("鎵ц瀹屾垚."); - } else { - System.out.println("鎵ц澶辫触."); - } - - ps.destroy(); //閿�姣佸瓙杩涚▼ - ps = null; - - return null; + public static void execNewLibreofficeCommand(String type, String sourcePath, String targetPath) throws OfficeException { + //浣跨敤鏂囦欢鏂瑰紡杞崲鎴怭DF + shellTool.documentConverter.convert(new File(sourcePath)).to(new File(targetPath)).execute(); } private static String exec(String command) { @@ -80,6 +84,6 @@ return returnString; } public static void main(String[] args) { - System.out.println(exec("libreoffice6.4 --headless --convert-to /root/灏忕孩.docx 灏忕孩.pdf ")); + //System.out.println(exec("soffice.exe --headless --invisible --convert-to D:/ots/uploadPath/upload/2021/02/28/01e01cf7e372ba8b1c5d24b8d69a46f8.docx 01e01cf7e372ba8b1c5d24b8d69a46f8.pdf ")); } } -- Gitblit v1.9.1