freemarker导出word带图片
导出word带图片
如果你需要在word中添加图片,那你就在第一步制作模板时,加入一张图片占位,然后打开xml文档,可以看到如下的一片base64编码后的代码:
<w:binData w:name="wordml://03000001.png" xml:space="preserve">iVBORw0…(很省略很省略)…CC</w:binData>
只要将
base64
的代码替换成例如:
${image}
,如下:
<w:binData w:name="wordml://03000001.png" xml:space="preserve">${image}</w:binData>
这里要注意“>${image}<”这尖括号中间不能加任何其他的诸如空格,tab,换行等符号。
然后用代码生成:
import freemarker.template.Configuration;
import freemarker.template.Template;
import sun.misc.BASE64Encoder; import java.io.*;
import java.util.HashMap;
import java.util.Map; /**
* @description freemarker导出word带图片
* @author: YHZ
* @date 2013-7-9
*/
public class CreateDocWithImage { private Configuration configuration = null; public CreateDocWithImage() {
configuration = new Configuration();
configuration.setDefaultEncoding("utf-8");
} public void create() throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
map.put("year", "2011");
map.put("person", "Zhu You Feng");
map.put("image", getImageStr()); configuration.setClassForTemplateLoading(this.getClass(), "/docTemplate/");
Template t = configuration.getTemplate("doc2.ftl");
File outFile = new File("D:/outFile.doc");
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile)));
t.process(map, out);
} private String getImageStr() {
String imgFile = "d:/test.jpg";
InputStream in = null;
byte[] data = null;
try {
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);
} public static void main(String[] args) throws Exception {
new CreateDocWithImage().create(); }
}
地址:http://www.cnblogs.com/zhuyoufeng/archive/2011/09/01/2161558.html
freemarker导出word带图片的更多相关文章
- spring boot freemarker 导出word 带echarts图形报表
创建word文件内容如下 将word导出为xml格式 将文件后缀名改为 .ftl 在springboot项目中添加freemarker依赖 <!-- 导出word文档--> <dep ...
- java导出word(带图片)
public class CreateWordDemo { public void createDocContext(String file) throws DocumentException,IOE ...
- 使用Freemarker导出Word文档(包含图片)代码实现及总结
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- freemarker导出word文档
使用freemarker导出word文档的过程 **************************************************************************** ...
- freemarker导出word文档——WordXML格式解析
前不久,公司一个项目需要实现导出文档的功能,之前是一个同事在做,做了3个星期,终于完成了,但是在项目上线之后却发现导出的文档有问题,此时,这个同事已经离职,我自然成为接班者,要把导出功能实现,但是我看 ...
- freemarker导出word档
1.word另存为xml:2.xml文件后缀名改成ftl:3.编写完整json字符串备用:4.修改ftl中动态字段为json中对应字段名:5.编写java代码自动生成word文件:(注意:换行用< ...
- freemarker导出word的一些问题
首先,了解下freemarker导出word的流程: 参考https://www.cnblogs.com/llfy/p/9303208.html 异常一: freemarker.core.ParseE ...
- 关于使用freemarker导出word
java使用FreeMarker导出word 一. 先做一个word模板 二. 将该word文件另存为xml格式(注意是另存为,不是直接改扩展名) 三. 打开xml文件把要 ...
- SpringBoot 集成 FreeMarker 导出 Word 模板文件(底部附源码)
思路解说 word 模板文件(doc 或 docx 文件)另存为 xml 文件 将后缀 xml 改成 html:大部分文档会改成 ftl(FreeMarker 的后缀名),因为 word 文件另存为 ...
随机推荐
- VIM 用正则表达式
VIM 用正则表达式 批量替换文本,多行删除,复制,移动 在VIM中 用正则表达式 批量替换文本,多行删除,复制,移动 :n1,n2 m n3 移动n1-n2行(包括n1,n2)到n3行之下: ...
- HTML——使用表格对表单进行布局
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3Vuc2h1bWlu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- Swift - 文本输入框(UITextField)的用法
1,文本框的创建,有如下几个样式: UITextBorderStyle.None:无边框 UITextBorderStyle.Line:直线边框 UITextBorderStyle.RoundedRe ...
- ActiveX控件的安全初始化和脚本操作 和 数字签名SIGN
摘要:数字签名SIGN保证控件在下载时候的安全性.如果你的代码已经经过数字签名,即使用户IE的安全设置很高也能下载,安装并登记.但是在页面上初始化,或者用脚本运行这个控件,为了保证安全性,还需要进行M ...
- 网站教学 提纲总结到ajax结束后面还有
Repeater - 重复器五个模板:HeaderTemplate - 在最上面,显示一次FooterTemplate - 最下面,显示一次ItemTemplate - 在中间,显示n次Alterna ...
- robots.txt禁止搜索引擎收录
禁止搜索引擎收录的方法 一.什么是robots.txt文件? 搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信息. 您可以在您的网站中创建一个纯文 ...
- ubuntu 64位下安装wps
首先,去官网下载wps.地址:http://community.wps.cn/download/ 然后切换到下载文件夹.运行例如以下命令: $ sudo apt-get install ia32-li ...
- Wamp 访问本地站点慢 的解决办法
自从安装了64位的windows 8.1之后,电脑运行速度变快了,可是重新下载安装64位的WAMP,访问本地的WEB站点确是很慢,根本不像是在本地访问,经过在WAMP论坛上搜索,终于找到了解决办法,主 ...
- 访何红辉:谈谈Android源码中的设计模式
最近Android 6.0版本的源代码开放下载,刚好分析Android源码的技术书籍<Android源码设计模式解析与实战>上市,我们邀请到它的作者何红辉,来谈谈Android源码中的设计 ...
- Raphaël 中文帮助文档(API)
http://html5css3webapp.com/raphaelApi.htm