使用freemarker模板生成带图片的word--xml格式

该博客介绍了使用Java和Freemarker以xml格式生成含图片的Word文档的方法。先制作Freemarker模板,包括准备和修改模板;接着编写后台代码,引入依赖、创建工具类方法和测试方法;最后展示了测试结果。


前言

以xml的格式生成word,可以将图片的二进制数据保存在word中,无需考虑图片的存放位置。


一、制作freemarker模板

1、 准备模板

首先,新建一个docx,然后往word里粘贴一个图片,再将word另存为xml文件。
新建一个freemarker文件,如 word.ftl,将xml内容拷贝到word.ftl中。

2、修改模板

1、找到图片所在的Relationship ,修改成如下格式

<#list pictList as pict>
       <Relationship Id="rId${pict_index+10}" 
       	Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"
		Target="media/image${pict_index+10}.png"/>
</#list>

2、找到 <w:body>,写入图片的title和引用的Relationship
(1)title在

 <w:t>${
   
   pict.title}</w:t>

(2)Relationship 在

<a:blip r:embed="rId${pict_index+10}"/>

(3)完整的body如下

 <w:body>
                    <#list pictList as pict >
                        <w:p>
                            <w:r>
                                <w:t>${
   
   pict.title}</w:t>
                            </w:r>
                            <w:r>
                                <w:rPr>
                                    <w:rFonts w:hint="eastAsia"/>
                                </w:rPr>
                                <w:t></w:t>
                            </w:r>
                        </w:p>
                        <w:p>
                            <w:r>
                                <w:drawing>
                                    <wp:inline distT="0" distB="0" distL="0" distR="0">
                                        <wp:extent cx="5274310" cy="2743835"/>
                                        <wp:effectExtent l="0" t="0" r="2540" b="0"/>
                                        <wp:docPr id="${pict_index+10}" name=
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_lrs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值