JAVA FreeMarker导出word含图片

本文介绍如何使用Java的FreeMarker模板引擎,通过base64编码和URL方式将图片插入到Word文档中。在创建模板时,预留图片位置并用base64编码替换,或者直接引用URL,详细步骤见链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

base64编码方式导出

如果你需要在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,换行等符号。

[详见]http://www.cnblogs.com/dyllove98/p/3181579.html


图片以URL方式存在模板中

String address=ServletActionContext.getServletContext().getRealPath("/");  
        String serverName = ServletActionContext.getRequest().getScheme()+"://"+ServletActionContext.getRequest().getServerName()+":"+ServletActionContext.getRequest().getServerPort()+ServletActionContext.getRequest().getContextPath()+"/";  
        byte[] pic=temployee.getEphoto();  
        String dir=address+"images/student/"+temployee.getEcode()+".jpg";  
        FileOutputStream fos = null;  
        fos = new FileOutputStream(dir);  
        if(pic==null){  
            dataMap.put("stuphoto",serverName+"images/student/default.jpg");  
        }else {  
            fos.write(pic);  
            dataMap.put("stuphoto",serverName+"images/student/"+temployee.getEcode()+".jpg");  
        }  
        fos.close();  

[详见] http://blog.csdn.net/body13_13/article/details/7594214
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值