许鹏程
2024-09-30 f1579ea6e661af4ed4fb4d4a1dbbe4f5bc75c284
src/main/java/com/product/file/util/PdfConcurrenceUtil.java
@@ -2,6 +2,7 @@
import com.alibaba.druid.util.StringUtils;
import com.product.core.config.Global;
import com.product.core.exception.BaseException;
import com.product.core.spring.context.SpringMVCContextHolder;
import com.product.file.config.FileCode;
import org.artofsolving.jodconverter.OfficeDocumentConverter;
@@ -45,6 +46,9 @@
     * 初始化转换服务
     */
    public static boolean init() {
       if(!Global.getPropertyToBoolean("open.office.isEnable", "true")) {//不启用oepn office转换
          return true;
       }
        SpringMVCContextHolder.getSystemLogger().info("初始化转换服务->");
        openOfficeHome = Global.getSystemConfig("open.office.home","");
        portInfo = Global.getSystemConfig("open.office.port.info","");
@@ -148,22 +152,58 @@
     * @param output
     * @return
     */
    public static File convertToPdf(String input, String output) {
    @Deprecated
    public static File convertToPdf(String input, String output) throws Exception {
        File inputFile = null;
        File outFile = null;
        OfficeManager officeManager = null;
        try {
            SpringMVCContextHolder.getSystemLogger().info("从队列中提取转换端口...");
            officeManager = officeManagerQueue.take();
            inputFile = new File(input);
            outFile = new File(output);
            SpringMVCContextHolder.getSystemLogger().info("开始转换文档:" + input + "=>" + output);
            OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);
            converter.convert(inputFile, outFile); // 转换文档
        } catch (Exception e) {
           e.printStackTrace();
            SpringMVCContextHolder.getSystemLogger().error("转换文档出错" + e);
        }catch (Exception e) {
            outFile = null;
            throw e;
        } finally {
            SpringMVCContextHolder.getSystemLogger().info("结束转换文档");
            if (officeManager != null) {
                try {
                    officeManagerQueue.put(officeManager);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
        return outFile;
    }
    /**
     * 转换pdf
     * @param input
     * @param output
     * @return
     */
    public static File convertToPdf(String input, String output,String officeType) throws Exception {
        File inputFile = null;
        File outFile = null;
        OfficeManager officeManager = null;
        try {
           if(Global.getPropertyToBoolean("open.office.isEnable", "false")) {//启用oepn office转换
              officeManager = officeManagerQueue.take();
                inputFile = new File(input);
                outFile = new File(output);
                SpringMVCContextHolder.getSystemLogger().info("开始转换文档:" + input + "=>" + output);
                OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);
                converter.convert(inputFile, outFile); // 转换文档
            }else{
               outFile = new File(AsposeUtil.OfficeToPdf(input, output,officeType));
           }
        }catch (Exception e) {
            outFile = null;
            throw e;
        } finally {
            SpringMVCContextHolder.getSystemLogger().info("结束转换文档");
            if (officeManager != null) {