From d68d798881163134cb5f59fc4a8d924809119a3c Mon Sep 17 00:00:00 2001 From: LSH Date: 星期二, 17 十月 2023 12:59:56 +0800 Subject: [PATCH] #fropensagresxdocreport --- src/main/java/com/zy/crm/manager/utils/WordUtils.java | 31 ++++++++++++++++++++++++++++--- src/main/java/com/zy/crm/manager/controller/ContractController.java | 6 +++++- pom.xml | 18 ++++++++++++++++++ 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 32b5017..a07e7e4 100644 --- a/pom.xml +++ b/pom.xml @@ -135,6 +135,24 @@ <version>4.1.2</version> </dependency> + <!--word杞琾df--> + <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> diff --git a/src/main/java/com/zy/crm/manager/controller/ContractController.java b/src/main/java/com/zy/crm/manager/controller/ContractController.java index 0e120e9..931f1b4 100644 --- a/src/main/java/com/zy/crm/manager/controller/ContractController.java +++ b/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; } diff --git a/src/main/java/com/zy/crm/manager/utils/WordUtils.java b/src/main/java/com/zy/crm/manager/utils/WordUtils.java index 74b58ac..31be1b6 100644 --- a/src/main/java/com/zy/crm/manager/utils/WordUtils.java +++ b/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杞琍DF + * */ + 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杞琾df澶辫触:"+e.toString()); + } + } + /** * 澶勭悊娈佃惤涓枃鏈紝鏇挎崲鏂囨湰涓畾涔夌殑鍙橀噺锛� * @param param 闇�瑕佹浛鎹㈢殑鍙橀噺鍙婂彉閲忓�� -- Gitblit v1.9.1