概述
importorg.apache.poi.xwpf.usermodel.XWPFDocument;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.core.io.InputStreamResource;importorg.springframework.http.HttpHeaders;importorg.springframework.http.MediaType;importorg.springframework.http.ResponseEntity;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;importjavax.servlet.http.HttpServletRequest;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util.HashMap;importjava.util.Map;
@Controller
@RestController
@RequestMapping(value= "/word/")public classWordServer {
@Autowired
HttpServletRequest request;
@GetMapping("/test")public ResponseEntity>test(){
Map params = new HashMap();
params.put("${ywbh}", "YW202011290005");
params.put("${xmmc}", "项目名称");
params.put("${sxkh}", "授信客户");
params.put("${jwgys}", "境外供应商");
params.put("${myzt}", "贸易主体");
params.put("${wlfw}", "物流服务");
params.put("${sjht}", "涉及合同");
params.put("${ywbj}", "t对象识别的应用范围比较广,例如人脸识别,车牌识别,自动驾驶等等都用到了对象识别的技术。对象识别是当今机器学习领域的一个前沿,2017 年研发出来的 Mask-RCNN 模型还可以检测对象的轮廓。");
params.put("${ywms}", "t如果图片包含了多个物体,我们想识别有哪些物体,各个物体在什么位置,那么只用 CNN 模型是无法实现的。rn我们需要可以找出图片哪些区域包含物体并且判断每个区域包含什么物体的模型,这样的模型称为对象识别模型 (Object Detection Model),最早期的对象识别模型是 RCNN 模型,后来又发展出 Fast-RCNN (SPPnet),Faster-RCNN ,和 YOLO 等模型。因为对象识别需要处理的数据量多,速度会比较慢 (例如 RCNN 检测单张图片包含的物体可能需要几十秒),而对象识别通常又要求实时性 (例如来源是摄像头提供的视频),所以如何提升对象识别的速度是一个主要的命题,后面发展出的 Faster-RCNN 与 YOLO 都可以在一秒钟检测几十张图片。");
CreateWordUtil createWordUtil= newCreateWordUtil();
XWPFDocument doc= null;
String fileNameInResource= "审批单-模版.docx";
InputStream is=getClass().getClassLoader().getResourceAsStream(fileNameInResource);
HttpHeaders headers= newHttpHeaders();
headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
headers.add("Pragma", "no-cache");
headers.add("Expires", "0");
String fileName= System.currentTimeMillis()+".docx";//String fileName = System.currentTimeMillis()+".pdf";
ByteArrayOutputStream baos= newByteArrayOutputStream();byte [] result = null;try{
doc= newXWPFDocument(is);//替换页眉
createWordUtil.replaceInHeader(doc, params);//替换文档中的段落//createWordUtil.replaceInDoc(doc, params);//替换文档中的表格
createWordUtil.replaceInTable(doc, params);
doc.write(baos);
result=baos.toByteArray();
}catch(IOException e) {
e.printStackTrace();
}finally{try{
baos.close();
}catch(IOException e) {
e.printStackTrace();
}finally{if(null !=doc){try{
doc.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}
}
headers.add("Content-Disposition", String.format("attachment; filename="%s"", fileName));//将生成的Word文档转换为PDF//InputStream fileInput = new ByteArrayInputStream(result);//byte [] outputBytes = null;//
//try {//outputBytes = WordToPdfUtil.convert(fileInput);//} catch (Exception e) {//e.printStackTrace();//}
returnResponseEntity
.ok()
.headers(headers)
.contentType(MediaType.parseMediaType("application/octet-stream"))
.body(new InputStreamResource(newByteArrayInputStream(result)));
}
}
最后
以上就是美丽鸡翅为你收集整理的java操作word模板_通过POI操作Word模版文档的全部内容,希望文章能够帮你解决java操作word模板_通过POI操作Word模版文档所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复