java 导出word 带复选框和图片
1.打开业务提供的word模板,里面需要填充的地方,设置好占位符:${},然后点击另存为Word XML文档,再将后缀名修改为.ftl文件
2.将ftl后缀的文件放到项目目录下
3.复选框处理:
data.put("type", null == order.getDisabilityCategory() ? 0 : Integer.parseInt(order.getDisabilityCategory())); data.put("level", null == order.getDisabilityLevel() ? 0 : Integer.parseInt(order.getDisabilityLevel()));
<w:t> 类别:</w:t><#if type==1><w:sym w:font="Wingdings 2" w:char="F052"/><w:t>视力</w:t><w:t> □听力</w:t><w:t> □肢体</w:t><w:t> □智力</w:t><w:t> □多重</w:t><#elseif type==2><w:sym w:font="Wingdings 2" w:char="F052"/><w:t>听力</w:t><w:t> □视力</w:t><w:t> □肢体</w:t><w:t> □智力</w:t><w:t> □多重</w:t><#elseif type==3><w:sym w:font="Wingdings 2" w:char="F052"/><w:t>肢体</w:t><w:t> □视力</w:t><w:t> □听力</w:t><w:t> □智力</w:t><w:t> □多重</w:t><#elseif type==4><w:sym w:font="Wingdings 2" w:char="F052"/><w:t>智力</w:t><w:t> □视力</w:t><w:t> □听力</w:t><w:t> □肢体</w:t><w:t> □多重</w:t><#elseif type==5><w:sym w:font="Wingdings 2" w:char="F052"/><w:t>多重</w:t><w:t> □视力</w:t><w:t> □听力</w:t><w:t> □肢体</w:t><w:t> □智力</w:t><#else><w:t> □视力</w:t><w:t> □听力</w:t><w:t> □肢体</w:t><w:t> □智力</w:t><w:t> □多重</w:t></#if> </w:r>
<w:sym w:font="Wingdings 2" w:char="F052"/><w:t>多重</w:t> 选中的样式
图片处理:
StringBuffer sbUrl = new StringBuffer(uploadpath); if (StringUtils.isNotEmpty(order.getApplicantSignature()) && !order.getApplicantSignature().startsWith("/")) {sbUrl.append(File.separator); } sbUrl.append(order.getApplicantSignature());String url = this.getImageStr(sbUrl.toString()); if (StringUtils.isNotEmpty(url)) {data.put("check", 1); } else {data.put("check", 0); }
data.put("url", url);
/*** 获得图片的Base64编码** @param imgFile* @return* @Author kd*/ public static String getImageStr(String imgFile) {InputStream in = null;byte[] data = null;try {in = new FileInputStream(imgFile);} catch (FileNotFoundException e) {log.error("加载图片未找到", e);//e.printStackTrace();return null;}try {data = new byte[in.available()];//注:FileInputStream.available()方法可以从输入流中阻断由下一个方法调用这个输入流中读取的剩余字节数in.read(data);in.close();} catch (IOException e) {log.error("IO操作图片错误", e);// e.printStackTrace();return null;}BASE64Encoder encoder = new BASE64Encoder();return encoder.encode(data);}
word模板的时候,再需要导出图片的地方,插入图片,这样ftl才有文件占位符
<w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体"w:hint="fareast"/><w:color w:val="000000"/><w:kern w:val="0"/><w:sz w:val="24"/><w:sz-cs w:val="24"/></w:rPr><#if check==1><w:pict><w:binData w:name="wordml://1.jpg">${url}</w:binData><v:shape id="_x0000_s1026" o:spt="75" alt="df6510ca4142d2c396698ed1f11ad3ee"type="#_x0000_t75" style="height:177.5pt;width:284pt;" filled="f"o:preferrelative="t" stroked="f" coordsize="21600,21600"><v:path/><v:fill on="f" focussize="0,0"/><v:stroke on="f"/><v:imagedata src="wordml://1.jpg" o:title="df6510ca4142d2c396698ed1f11ad3ee"/><o:lock v:ext="edit" aspectratio="t"/><w10:wrap type="none"/><w10:anchorlock/></v:shape></w:pict></#if></w:r>
java 导出word 带复选框和图片相关推荐
- POI导出Word插入复选框
POI功能比较强大,但是有些不常用功能比如插入特殊符号,不知道API怎么调用 Word里要插入复选框,首先想到的是POI有没有提供现成的API,搜了一番,貌似都说不直接支持 http://stacko ...
- html 复选框 mysql_Html:实现带复选框的下拉框(一)
概述 项目中要用到可多选的下拉框(select),发现HTML中无此控件,故手动模拟实现一下. 模拟所用元素:input,ul,li 代码 模拟实现带复选框的下拉列表 body{ margin: 20 ...
- JAVA之获取JavaSwing复选框JCheckBox选中的值(内容)
JAVA之获取JavaSwing复选框JCheckBox选中的值(内容) package shishi;import java.awt.BorderLayout; import java.awt.Co ...
- element表格实现树形全选_vue+element UI实现树形表格带复选框的示例代码
一:在component文件夹下新建如下treeTable文件夹,里面有2个文件: eval.js:将数据转换成树形数据 /** * @Author: jianglei * @Date: 2017-1 ...
- 雷林鹏分享:jQuery EasyUI 树形菜单 - 创建带复选框的树形菜单
jQuery EasyUI 树形菜单 - 创建带复选框的树形菜单 easyui 的树(Tree)插件允许您创建一个复选框树.如果您点击一个节点的复选框,这个点击的节点信息将向上和向下继承.例如:点击 ...
- Material UI 带复选框表格获取选中值(索引)
vue+Material UI 带复选框表格获取选中值(索引) 发现问题 解决 写在最后 发现问题 神坑UI框架–Material,这款框架我不晓得为什么会这么坑,有这么多的问题为什么会被推出来,真的 ...
- HTML复选框里添加下拉框,Html:实现带复选框的下拉框(一)
概述 项目中要用到可多选的下拉框(select),发现HTML中无此控件,故手动模拟实现一下. 模拟所用元素:input,ul,li 代码 模拟实现带复选框的下拉列表 body{ margin: 20 ...
- 8、Java Swing JCheckBox:复选框组件
一个复选框有选中和未选中两种状态,并且可以同时选定多个复选框.Swing 中使用 JCheckBox 类实现复选框, JCheckBox类的常用构造方法如下. JCheckBox():创建一个默认的复 ...
- 关于JFace带复选框的树
树的复选框用CheckboxTreeViewer实现.由于其子类ContainerCheckedTreeViewer在没有选择全部子节点时可以自动将父节点设置成灰选,所以实现树的复选框更多的是用Con ...
最新文章
- ES6 系列之 let 和 const
- ctrl+鼠标左键监听
- SRS的2021,盐碱地里种西瓜的王婆
- javaone_JavaOne 2012 – 2400小时! 一些建议
- monkey自动化测试移动app 操作指南——真机 安卓(Android)app测试
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- 暴力/set Codeforces Round #291 (Div. 2) C. Watto and Mechanism
- inter Fortran安装匹配VS2012
- 计算机视觉之YOLO算法
- excel android 官网下载地址,excel手机版app下载-excel手机版(excel教程学习)下载v2.0 安卓版-西西软件下载...
- 公差带与配合 常用基孔(轴)制基准公差数值
- kasp技术原理_KASP基因分型技术服务
- H3C防火墙安全域知识、远程登陆及web页面
- iphone4s 关于大于400M的视频无法拷贝的问题
- React 环境搭建以及创建项目工程(一)
- Xilinx SDK使用
- svn版本更迭的原理
- 【干货】ArcGIS常用标注技巧
- 跨模态对齐 20220728
- 做人留一线、日后好想见:致所有明日之后手游拆家大队