pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/crm/manager/controller/ContractController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/crm/manager/utils/WordUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | 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 需要替换的变量及变量值