使用freemarker生成word、html时,在图片显示这儿碰了个大钉子,最后总算弄出来了,这里总结一下。
1、生成word:
a、使用freemarker生成word文档图片显示需要特殊处理,若是按照常理(使用占位符的形式)替换完成之后显示图片的区域只会出现一堆内容(即你给它赋值的内容)而不是一张图片。
b、如何处理:直接从某处复制一张图片放到word中需要显示的区域,然后另存为xml。打开xml文件可以发现这张图片是以base64编码存在的,且这些编码放在<w:binData>标签之中。将这些base64编码使用占位符代替然后进行常规处理就能正常显示了。
c、word中添加图片之后,xml里边就会多出一个<w:pict>标签,内容如下(以我本地的为例):
<w:pict> <v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <