中扬CRM客户关系管理系统
LSH
2023-10-17 d68d798881163134cb5f59fc4a8d924809119a3c
#fropensagresxdocreport
3个文件已修改
55 ■■■■■ 已修改文件
pom.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/controller/ContractController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/utils/WordUtils.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -135,6 +135,24 @@
            <version>4.1.2</version>
        </dependency>
        <!--word转pdf-->
        <dependency>
            <groupId>fr.opensagres.xdocreport</groupId>
            <artifactId>fr.opensagres.poi.xwpf.converter.pdf-gae</artifactId>
            <version>2.0.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-local</artifactId>
            <version>1.0.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-transformer-msoffice-word</artifactId>
            <version>1.0.3</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>alibabacloud-dysmsapi20170525</artifactId>
src/main/java/com/zy/crm/manager/controller/ContractController.java
@@ -240,7 +240,11 @@
            /////////////////////////生成Tab表格数据/////////////////////////
            String fileName = this.getClass().getClassLoader().getResource("contractTemplate/" + contractTemplate + ".docx").getPath();//获取文件路径
            return WordUtils.generate(fileName, map, tabParam);
//            String outPdfPath = fileName.split("\\.")[0]+".pdf";
            ResponseEntity<InputStreamResource> generate = WordUtils.generate(fileName, map, tabParam);
//            WordUtils.documents4jWordToPdf(fileName,outPdfPath);
            return generate;
        } catch (Exception e) {
            return null;
        }
src/main/java/com/zy/crm/manager/utils/WordUtils.java
@@ -1,7 +1,8 @@
package com.zy.crm.manager.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.documents4j.api.DocumentType;
import com.documents4j.api.IConverter;
import com.documents4j.job.LocalConverter;
import org.apache.poi.xwpf.usermodel.*;
import org.apache.xmlbeans.XmlCursor;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;
@@ -13,7 +14,6 @@
import java.io.*;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -50,6 +50,31 @@
                .body(resource);
    }
    /*
    * word转PDF
    * */
    public static void documents4jWordToPdf(String sourcePath, String targetPath) {
        File inputWord = new File(sourcePath);
        File outputFile = new File(targetPath);
        try {
            InputStream docxInputStream = new FileInputStream(inputWord);
            OutputStream outputStream = new FileOutputStream(outputFile);
            IConverter converter = LocalConverter.builder().build();
            boolean execute = converter.convert(docxInputStream)
                    .as(DocumentType.DOCX)
                    .to(outputStream)
                    .as(DocumentType.PDF).schedule().get();
            outputStream.close();
            docxInputStream.close();
            System.out.println("转换完毕 targetPath = "+outputFile.getAbsolutePath());
            converter.shutDown();
            return;
        } catch (Exception e) {
            System.out.println("[documents4J] word转pdf失败:"+e.toString());
        }
    }
    /**
     * 处理段落中文本,替换文本中定义的变量;
     * @param param 需要替换的变量及变量值