提交 b13670dc 作者: 苗卫卫

aspost.words包引入

父级 d06d8778
......@@ -111,11 +111,11 @@
<version>3.4.1</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.aspose</groupId>-->
<!-- <artifactId>aspose-words</artifactId>-->
<!-- <version>15.8.0</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>15.8.0</version>
</dependency>
</dependencies>
......
......@@ -1581,7 +1581,7 @@ public class OrderServiceImpl extends BaseDaoService3<OrderPO, FlowOrderMapper>
indexOne++;
}
blockPairBo.setExperiences(data);
// pdfUtil.getWord(path, blockPairBo, fileName, response);
pdfUtil.getWord(path, blockPairBo, fileName, response);
} catch (Exception e) {
e.printStackTrace();
}
......
......@@ -3,7 +3,7 @@ package com.boco.nbd.wios.flow.util;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
//import com.aspose.words.*;
import com.aspose.words.*;
import com.boco.nbd.cams.core.constant.CamsConstant;
import com.boco.nbd.wios.flow.entity.pdf.BlockPairBo;
import com.boco.nbd.wios.flow.entity.pdf.SurveyDataBo;
......@@ -40,20 +40,20 @@ public class PdfUtil {
judgment = 0;
}
// private static boolean getLicense() {
// boolean result = false;
//
// try {
// InputStream is = PdfUtil.class.getClassLoader().getResourceAsStream("License.xml");
// License aposeLic = new License();
// aposeLic.setLicense(is);
// result = true;
// } catch (Exception var3) {
// var3.printStackTrace();
// }
//
// return result;
// }
private static boolean getLicense() {
boolean result = false;
try {
InputStream is = PdfUtil.class.getClassLoader().getResourceAsStream("License.xml");
License aposeLic = new License();
aposeLic.setLicense(is);
result = true;
} catch (Exception var3) {
var3.printStackTrace();
}
return result;
}
/**
* 根据模板生成word
......@@ -61,59 +61,59 @@ public class PdfUtil {
* @param path 模板的路径
* @param fileName 生成word文件的文件名
*/
// public void getWord(String path, BlockPairBo blockPairBo, String fileName, HttpServletResponse response) throws Exception {
// ClassPathResource resource = new ClassPathResource(path);
// InputStream is = resource.getInputStream();
// String saveRoute = path.substring(0, path.lastIndexOf("/"));
// XWPFTemplate xwpfTemplate = XWPFTemplate.compile(is);
// ByteArrayOutputStream output = new ByteArrayOutputStream();
// if (judgment == 0) {
// fileName = java.net.URLDecoder.decode(fileName, CamsConstant.UTF_8);
// xwpfTemplate.render(blockPairBo).write(output);
// String pdf = fileName.substring(0, fileName.lastIndexOf(".")) + DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN) + ".pdf";
// ByteArrayInputStream input = new ByteArrayInputStream(output.toByteArray());
// doc2pdf(input, saveRoute + "/" + pdf);
// File file = new File(saveRoute + "/" + pdf);
// //判断文件大小,并压缩
// if (file.length() > WiosConstant.FILE_SIZE) {
// file.delete();
// for (SurveyDataBo bo : blockPairBo.getExperiences()) {
// compressPictures(bo);
// }
// getWord(path, blockPairBo, fileName, response);
// return;
// }
// try {
// log.info("========================{}下载开始========================", pdf);
// is = new BufferedInputStream(new FileInputStream(saveRoute + "/" + pdf));
// byte[] buffer = new byte[is.available()];
// is.read(buffer);
// response.reset();
// // 设置response的Header
// response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(file.getName(), CamsConstant.UTF_8));
// response.addHeader("Content-Length", "" + file.length());
// response.setContentType("application/octet-stream");
// response.setCharacterEncoding("utf-8");
// OutputStream os = new BufferedOutputStream(response.getOutputStream());
// os.write(buffer);
// os.flush();
// log.info("========================{}下载结束========================", pdf);
// //删除缓存文件
// file.delete();
// } catch (IOException ex) {
// log.error(pdf + "下载异常:", ex);
// ex.printStackTrace();
// }
// } else {
// fileName = java.net.URLDecoder.decode(fileName, CamsConstant.UTF_8);
// output = new ByteArrayOutputStream();
// response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
// xwpfTemplate.write(output);
// judgment = 0;
// }
// this.close(output);
// this.close(is);
// }
public void getWord(String path, BlockPairBo blockPairBo, String fileName, HttpServletResponse response) throws Exception {
ClassPathResource resource = new ClassPathResource(path);
InputStream is = resource.getInputStream();
String saveRoute = path.substring(0, path.lastIndexOf("/"));
XWPFTemplate xwpfTemplate = XWPFTemplate.compile(is);
ByteArrayOutputStream output = new ByteArrayOutputStream();
if (judgment == 0) {
fileName = java.net.URLDecoder.decode(fileName, CamsConstant.UTF_8);
xwpfTemplate.render(blockPairBo).write(output);
String pdf = fileName.substring(0, fileName.lastIndexOf(".")) + DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN) + ".pdf";
ByteArrayInputStream input = new ByteArrayInputStream(output.toByteArray());
doc2pdf(input, saveRoute + "/" + pdf);
File file = new File(saveRoute + "/" + pdf);
//判断文件大小,并压缩
if (file.length() > WiosConstant.FILE_SIZE) {
file.delete();
for (SurveyDataBo bo : blockPairBo.getExperiences()) {
compressPictures(bo);
}
getWord(path, blockPairBo, fileName, response);
return;
}
try {
log.info("========================{}下载开始========================", pdf);
is = new BufferedInputStream(new FileInputStream(saveRoute + "/" + pdf));
byte[] buffer = new byte[is.available()];
is.read(buffer);
response.reset();
// 设置response的Header
response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(file.getName(), CamsConstant.UTF_8));
response.addHeader("Content-Length", "" + file.length());
response.setContentType("application/octet-stream");
response.setCharacterEncoding("utf-8");
OutputStream os = new BufferedOutputStream(response.getOutputStream());
os.write(buffer);
os.flush();
log.info("========================{}下载结束========================", pdf);
//删除缓存文件
file.delete();
} catch (IOException ex) {
log.error(pdf + "下载异常:", ex);
ex.printStackTrace();
}
} else {
fileName = java.net.URLDecoder.decode(fileName, CamsConstant.UTF_8);
output = new ByteArrayOutputStream();
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
xwpfTemplate.write(output);
judgment = 0;
}
this.close(output);
this.close(is);
}
/**
* 关闭输入流
......@@ -169,49 +169,49 @@ public class PdfUtil {
* @param wordPath word 的路径 word 的路径
* @param pdfPath pdf 的路径
*/
// public static void doc2pdf(String wordPath, String pdfPath) {
// if (getLicense()) {
// try {
// long old = System.currentTimeMillis();
// File file = new File(pdfPath);
// FileOutputStream os = new FileOutputStream(file);
// Document doc = new Document(wordPath);
//
// doc.save(os, 40);
// long now = System.currentTimeMillis();
// os.close();
// log.info("共耗时:" + (double) (now - old) / 1000.0D + "秒");
// } catch (Exception var9) {
// var9.printStackTrace();
// }
//
// }
// }
// public static void doc2pdf(InputStream is, String pdfPath) {
// if (getLicense()) {
// try {
// long old = System.currentTimeMillis();
// File file = new File(pdfPath);
// if (!file.getParentFile().exists()) {
// file.getParentFile().mkdirs();
// }
// FileOutputStream os = new FileOutputStream(pdfPath);
// Document doc = new Document(is);
// PdfSaveOptions options = new PdfSaveOptions();
// // 文字和图像压缩
// options.setExportDocumentStructure(true);
// options.setTextCompression(PdfTextCompression.FLATE);
// options.setImageCompression(PdfImageCompression.AUTO);
// // 接收修订
// doc.acceptAllRevisions();
// doc.save(os, options);
// long now = System.currentTimeMillis();
// os.close();
// log.info("共耗时:" + (double) (now - old) / 1000.0D + "秒");
// } catch (Exception var9) {
// var9.printStackTrace();
// }
// }
// }
public static void doc2pdf(String wordPath, String pdfPath) {
if (getLicense()) {
try {
long old = System.currentTimeMillis();
File file = new File(pdfPath);
FileOutputStream os = new FileOutputStream(file);
Document doc = new Document(wordPath);
doc.save(os, 40);
long now = System.currentTimeMillis();
os.close();
log.info("共耗时:" + (double) (now - old) / 1000.0D + "秒");
} catch (Exception var9) {
var9.printStackTrace();
}
}
}
public static void doc2pdf(InputStream is, String pdfPath) {
if (getLicense()) {
try {
long old = System.currentTimeMillis();
File file = new File(pdfPath);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
FileOutputStream os = new FileOutputStream(pdfPath);
Document doc = new Document(is);
PdfSaveOptions options = new PdfSaveOptions();
// 文字和图像压缩
options.setExportDocumentStructure(true);
options.setTextCompression(PdfTextCompression.FLATE);
options.setImageCompression(PdfImageCompression.AUTO);
// 接收修订
doc.acceptAllRevisions();
doc.save(os, options);
long now = System.currentTimeMillis();
os.close();
log.info("共耗时:" + (double) (now - old) / 1000.0D + "秒");
} catch (Exception var9) {
var9.printStackTrace();
}
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论